線程中Sleep(0)的作用

Sleep(n)的作用是讓當前線程睡眠n毫秒,以便執行其他線程,如果沒有其他線程,那睡眠n毫秒後,繼續執行。

而如果n=0,Sleep(0)是指CPU交出當前線程的執行權,讓CPU去執行其他線程。也就是放棄當前線程的時間片,轉而執行其他線程。

那麼,Sleep(0)應該在那種情況下使用? 一般來說,如果當前線程比較耗時比較佔CPU資源,可以在結尾處加上Sleep(0), 這樣效率會得到大大的提高。

另外,還可以用這種方法來保證線程同步,線城池工作時,主線程使用Sleep(0)來等待線程池裏所有的線程都完成運行。當線程池線程非常多的時候,這種方法確實是一種非常有效的節省cpu的方式,因爲它節省了在線程裏使用內核來進行同步的開銷。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章