忙碌等待

在軟件工程中 ， 忙碌等待 （ 也稱自旋 ； 、 busy - looping 、 spinning ） 是一種以進程反覆檢查一個條件是否爲真爲根本的技術 ， 條件可能爲鍵盤輸入或某個鎖是否可用 。 忙碌等待也可以用來產生一個任意的時間延遲 ， 若系統沒有提供生成特定時間長度的方法 ， 則需要用到忙碌等待 。 不同的計算機處理器速度差異很大 ， 特別是一些處理器設計爲可能根據外部因素 （ 例如操作系統上的負載 ） 動態調整速率 。 因此 ， 忙碌等待這種時間延遲技術容易產生不可預知 、 甚至不一致的結果 ， 除非實現代碼來確定處理器執行 “ 什麼都不做 ” 循環的速度 ， 或者循環代碼明確檢查實時時鐘 。 在某些情況下 ， 忙碌等待是有效的策略 ， 特別是實現自旋鎖設計的操作系統上運行對稱多處理 。 不過一般來說 ， 忙碌等待是應該避免的反模式 ， 處理器時間應該用來執行其他任務 ， 而不是浪費在無用的活動上 。