對mdelay 和msleep 的理解

2021-07-10 17:39:32 字數 622 閱讀 2281

在liunx 驅動開發過程中,經常要用到延遲函式:msleep/mdelay/udelay,但是很多人對於這些不是很在意,平時開發的時候用起來也是比較隨意(在我沒搞清之前也是這樣,哈哈)

msleep和mdelay同樣都有延遲的效果,但是肯定也會有些差別的,否則就不要多此一舉了。

mdelay是忙等待函式,在延遲過程中無法執行其他任務,是占用cpu資源的。它的延遲的時間是準確的

msleep是休眠函式,它不涉及忙等待。只是把執行緒掛起,不占用cpu資源的。它的延遲的時間是不準確的。msleep實現是基於排程,延時期間呼叫schedule_timeout產生排程,待時間到期後繼續執行,該函式實現在kernel/timer.c中。你想延遲10ms,使用msleep(10),但是實際系統不止延遲了10ms。

在開發過程中,10ms以下對時序要求比較高的使用mdelay(),

100ms以上的延時最好還是用msleep,因為使用mdelay()會占用cpu資源,可能會

對linux的多工系統執行還是有一定影響,所以這一點需要注意。

對前端的理解和對自己的定位

這段時間公司提供給大家乙個崗位晉公升的機會,要以ppt的形式展現,具體包括以下幾點 當前的崗位職責 對崗位的理解 對當前崗位的建議和意見 對公司發展的建議和意見 該季度獲得的工作成績和對未來工作的發展定位和目標。我很糾結要不要去申請,因為自畢業以來做前端開發以後,交際圈明顯縮小,不像以前那樣話多,變...

對webpack和gulp的理解和區別

webpack是前端構建工具,稱為模組打包機,webpack支援模組化 構建前端開發過程中常用的檔案,如 js,css,html,img等 使用簡單方便,自動化構建。webpack是通過loader 載入器 和plugins 外掛程式 對資源進行處理的。glup側重於前端開發的整個過程的控制管理,我...

對委託和事件的理解和抽象

對委託和事件的理解和抽象 委託的理解 現實生活中的 委託,乙個物件讓另乙個物件,做乙個前者應該做的事 我委託你去幫我買瓶水 程式中 定義兩個概念 都是以物件形式存在 應用 對事件的理解 現實生活中的 事件就是乙個物件的乙個行為 某個人做了某件事 或者乙個人做了幾件事,這裡特指乙個物件乙個事件 程式中...