在linux下调用sleep是用时钟的,一个进程的时钟系统是有限制的.如果每个线程使用sleep,到了最大的数量,最终会进程会挂起.最好是用select取代
void select_sleep(int i)
{
struct timeval timeout;
timeout.tv_sec = i;
timeout.tv_usec = 0;
select( 0, NULL, NULL, NULL, & timeout );
}
本文探讨了在Linux系统中,由于进程时钟系统的限制,长时间大量使用sleep可能导致的问题,并提出使用select作为替代方案来避免这些问题。通过示例代码展示了如何实现基于select的定时休眠。
在linux下调用sleep是用时钟的,一个进程的时钟系统是有限制的.如果每个线程使用sleep,到了最大的数量,最终会进程会挂起.最好是用select取代
void select_sleep(int i)
{
struct timeval timeout;
timeout.tv_sec = i;
timeout.tv_usec = 0;
select( 0, NULL, NULL, NULL, & timeout );
}
2804
2546
714
4117

被折叠的 条评论
为什么被折叠?