程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> select-ARM9 + Linux多線程精確的定時器

select-ARM9 + Linux多線程精確的定時器

編輯:編程綜合問答
ARM9 + Linux多線程精確的定時器

最近公司有個項目平台是ARM9 + linux, 在開發過程中遇到一個問題: 有一部分CAN通訊,需要250ms定時發送一幀數據包。於是我用select做了一個定時器發送。但是當這個多線程的程序真正跑起來,在接受端進行檢測。結果收到的該幀的時間間隔竟然是330ms左右。雖然預先我知道有偏差,但是330的時間間隔確實大大超出了預期!如果用setitimer的話,一是資源少,二是信號如果加入程序中,可能會帶來很多不必要的BUG。哪位大神有更好的定時器方法???

最佳回答:


select定時器的精度是ms級,即使系統調度會出現延時,不可能延時達到100ms以上,再看測試用例,發送數據並在接收端接收網絡數據,因此估計延時時間的誤差應該是網絡數據發送和接收引起的,所以root cause 不在於定時器。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved