前段时间用到linux下的线程等待, 当时找了很长时间, 具体的请查看:
现在要把写的东西移植到windows下, 今天运行我那写的东西, 编译没任何问题, 运行起来cpu使用100%, 应该是什么进入死循环了,
查了一下, 原来是在linux下写的线程等待在windows下没用了, 不等了。
下面是我写的linux下的线程等待代码, 结果在windows下根本就不等。
static void pthr_sleep(int sec){ struct timeval t_val; t_val.tv_sec = sec; t_val.tv_usec = 0; select(0, null, null, null, &t_val);}自己以为这东西是万能的, 没想到又出问题了, 看来只有测试过的才可以说yes了。
想的再好还只是想的啊。
重新写了一下, windows下的线程等待就一个sleep就可以的
msdn的说法:
sleep functionsuspends the execution of the current thread for at least the specified interval.void winapi sleep( __in dword dwmilliseconds);
/**
*
* thread sleep
*
* 通过了windows和rh9的测试
*/
void thr_sleep(uint32_t sec)
{
#ifdef _win32
sleep(sec*1000);
#else
struct timeval t_val;
t_val.tv_sec = sec;
t_val.tv_usec = 0;
select(0, null, null, null, &t_val);
#endif
}
|
阅读(1478) | 评论(0) | 转发(0) |