python — time.Sleep(0)的觀念

ss
1 min readSep 25, 2018

--

最近在讀一段code, 發現作者很喜歡用time.sleep(0)這個用法, 但令我百思不得其解的是我們都知道sleep的用法, sleep(1)就是等一秒後, 如果被OS排班到我們才會繼續執行這個thread, 但是sleep(0) 到底是怎麼一回事呢?

原來是當我們想要thread主動的讓出它執行cpu的所有權,便會使用這樣的手法

有另一個API叫做sched_yield(), 它是直接強制的讓這個thread釋出所有權, 而sleep(0)這個方式比較緩和, 他頂多就是讓OS再去決定這時候執行的人應該換誰了, 而可能的執行的thread還是原本呼叫sleep(0)的thread

哪個比較優呢?就端看你的程式怎樣運行了

參考資料:What is the difference between sleep(0) and sched_yield()?

--

--

ss
ss

Responses (1)