[英]timer in a thread with pthread in C?
在线程中,我需要定期在一些不同的时间间隔内完成一些工作,这样做的好方法是什么? 使用sleep(),然后我需要跟踪下一次唤醒的间隔,这似乎不是最好的方法。
谢谢。
您可以将clock_nanosleep
与TIMER_ABSTIME
标志一起使用,以使用绝对时间而不是睡眠的相对时间。 这将避免错误累积问题和竞争条件,其中程序被中断,另一个进程在获取当前时间之后但在调用睡眠之前被安排。
或者,您可以将POSIX定时器( timer_create
)与信号处理程序一起使用,其中您选择的信号在您的所有线程中被阻止,或者在新线程中使用定时器传递,该线程表示您的线程正在等待的条件变量或信号量。
取决于您需要多少准确度:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.