用select 定时等待的一个注意点

Posted lausaa

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用select 定时等待的一个注意点相关的知识,希望对你有一定的参考价值。

struct timeval delay;
delay.tv_sec = 0;
delay.tv_usec = 100000; // 100 ms

while (1) {
    // ......................
    select(0, NULL, NULL, NULL, &delay);
}

上面的代码是不能达到每轮循环等待100ms 的预期的,因为调用select 后,delay.tv_sec 和 delay.tv_usec 被修改为0 了。

delay需要在循环内赋值,才能达到预期。

 

以上是关于用select 定时等待的一个注意点的主要内容,如果未能解决你的问题,请参考以下文章

muduo网络库学习笔记(10):定时器的实现

测试片段不执行定时器或示例超时

定时任务crontab

MFC中如何建立和结束一个线程

socket编程的select()中重启定时器

通用mapper中的select方法的注意点