我對Real Time編程/多線程相當陌生,我試圖在我的帶子下得到一些實際的開發。我試圖爲一個學校項目編寫一個程序(用C語言編寫),用於執行幾項任務,包括圖像處理(openCV),提供網頁(使用libmicrohttpd之類的庫)以及與外設接口。這個程序將大量使用線程,每個任務基本上都是獨立運行的。爲自己的線程提供實時時鐘是個好主意嗎?
該程序的一個非常重要的部分是事件/數據記錄,並在外設上設置時鐘,這需要計算機的板載時間。也就是說,不止一個線程需要將當前時間作爲其任務的一部分。所以我的問題是,在單個線程中聲明一個全局時間結構並調用gettime是一個更好的主意,或者需要一個單獨的線程始終保持當前時間,然後每個線程都從中讀取?前者聽起來像可能有訪問問題,而第二個聽起來很難以適當的頻率更新。
爲了讓任務更詳細的想法,我做:
- 我保存圖像,幷包含時間文本日誌,每當OpenCV的檢測到某個對象
- 我m記錄從外設接收到的最後10個數據包的時間(這是一個非常低的數據速率連接)
- 外設沒有板載RTC,因此該程序會在連接或漂移太遠時設置它。
感謝您的任何建議。