linux定时器问题
一般的定时器在主线程设置
比如说10S
然后在while循环中,主调用需要花5秒钟来执行,这样再等5秒就可以执行定时器的调用了
但是假如while循环中的主调用所花的时间超过10S了,这个时候是打断它去执行定时器调用
还是继续执行完主调用
可以把主调用保护起来吧
sigprocmask(SIG_BLOCK)
主调用
sigprocmask(SIG_UNBLOCK)
mutex+cond做。然后用pthread_cond_timedwait设置超时时间,再判断返回值是否代表超时。
然后每次循环都重新计算超时值。