欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

中如何穩定地每隔5ms執行某個函數

呂致盈2年前13瀏覽0評論

中如何穩定地每隔5ms執行某個函數?

輪詢檢查是否到達5ms,為了減少開銷可以每次sleep 1ms,為了保證精度可以少于1ms,但無論怎么做,在現代分時操作系統上都沒法精確到5ms,只能盡量接近。不過windows和linux都有實時調度模式,你可以試試。

如果你是在嵌入式上直接裸寫的,可以做到更接近5ms,但也達不到絕對精確,嵌入式cpu頻率是已知的(可粗略理解為每秒晶振多少次),每條指令的運行需要多少次晶振(也就能算出每條指令的執行時間),也就能幾乎精確的控制代碼在合何時執行,以及能執行多久。

但這里沒有考慮指令和數據從內存儲設備load進cpu寄存器的時間,也沒有考慮多級cache,以及cache miss時耗費的時間,也沒有考慮有指令流水線參與的更復雜的處理器。即便是cpu生產公司,他能告訴你各個子功能的精確耗時,但綜合起來以后情況就變得很復雜,也許同一個條代碼上一次執行時花10ns,下一次執行也許只用6ns。所以只能提供一個估計的平均耗時以供參考,但不能作為絕對指標。

如果是在有時鐘中斷提供(無論這個時鐘有多精確)的cpu上運行代碼,這些指令的執行時間同樣受上面的因素影響,所以也只能給個平均時間。

這里還沒有考慮數值精度的問題,在不同的表示方法下,以及不同的算術影響下,5ms這個數值的精確度問題。

也沒有考慮多任務系統參與下任務調度帶來的更多影響因素。

所以最終只能取近似,而不能強求絕對精確。

java全局函數教學,中如何穩定地每隔5ms執行某個函數