[英]timer in a thread with pthread in C?
在線程中,我需要定期在一些不同的時間間隔內完成一些工作,這樣做的好方法是什么? 使用sleep(),然后我需要跟蹤下一次喚醒的間隔,這似乎不是最好的方法。
謝謝。
您可以將clock_nanosleep
與TIMER_ABSTIME
標志一起使用,以使用絕對時間而不是睡眠的相對時間。 這將避免錯誤累積問題和競爭條件,其中程序被中斷,另一個進程在獲取當前時間之后但在調用睡眠之前被安排。
或者,您可以將POSIX定時器( timer_create
)與信號處理程序一起使用,其中您選擇的信號在您的所有線程中被阻止,或者在新線程中使用定時器傳遞,該線程表示您的線程正在等待的條件變量或信號量。
取決於您需要多少准確度:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.