成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

調度算法:Sleep并不總是如你預想的那樣起作用

開發 前端
我們需要了解 CPU 時間片在各個線程上的調度原理,Sleep(0) 和 Sleep(1) 雖然只是參數上的不同,但底層運行邏輯卻有很大的區別。

作為上一篇文章”即使運行高優先級線程,低優先線程也能運行”的另一個反面例子,人們會認為調用 Sleep(0) 是一種放棄 CPU 時間片的簡單方法。舉個例子,如果消費者線程目前沒有數據可以處理,則可以調用此函數來出讓 CPU 時間片,以等待生產者線程產生需要的數據。

讓我們回想一下,調度程序會查找優先級最高的可運行線程,如果存在平局,則所有候選項大致平均共享 CPU。線程可以調用 Sleep(0) 來放棄其時間片,從而減少其在 CPU 中的份額。但請注意,這并不能保證其他線程將運行。

如果存在具有最高優先級的唯一可運行線程,它可以調用 Sleep(0),并保持很長一段時間,但它不會放棄 CPU。這是因為 Sleep 的時間為零會釋放分配給它的時間片,但使線程可運行。由于它是唯一具有最高優先級的可運行線程,因此它會立即恢復 CPU。如果沒有其他人排隊,你實際上并沒有將時間片出讓給其他線程。

因此,如果使用 Sleep(0) 作為不那么有效的出讓 CPU 的方法,它永遠不會允許運行優先級較低的線程。這意味著各種后臺活動(如索引)永遠不會有機會運行,因為你的程序占用了所有 CPU 時間。更重要的是,你的程序從未真正釋放 CPU 的事實,意味著計算機永遠不會進入低功耗狀態。筆記本電腦會更快地耗盡電池電量并運行得更熱,終端服務器將無休止地消耗 CPU 時間片。

最好的辦法是等待正確的同步對象,以便線程進入睡眠狀態,直到有工作要做。如果你由于某種原因不能這樣做,至少 Sleep 一個非零的時間值。這樣,在短暫的時刻,你的線程不可運行,而其他線程(包括優先級較低的線程) 有機會運行。(這也將在一定程度上降低功耗,盡管不如等待正確的同步對象那么多。)

總結

我們需要了解 CPU 時間片在各個線程上的調度原理,Sleep(0) 和 Sleep(1) 雖然只是參數上的不同,但底層運行邏輯卻有很大的區別。
由于程序可能會運行在各種不同配置的系統上,簡單的使用 Sleep 來進行線程同步,將產生預料不到的偏差,你絕對不希望這樣。
所以,正如原文作者指出的,多線程下的線程協調工作,還是使用內核同步對象比較好。

最后

Raymond Chen的《The Old New Thing》是我非常喜歡的博客之一,里面有很多關于Windows的小知識,對于廣大Windows平臺開發者來說,確實十分有幫助。
本文來自:《Consequences of the scheduling algorithm: Sleeping doesn’t always help》

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2023-08-23 19:11:01

Kubernetes系統云原生

2020-06-27 17:33:42

云計算技術安全

2018-05-08 06:51:02

2014-07-16 09:53:57

分布式系統

2024-04-24 11:29:40

2021-07-26 09:16:34

智能家居安全物聯網

2020-09-03 10:11:14

云計算遠程工作

2021-03-23 14:36:18

物聯網智能交通IOT

2022-06-07 14:55:23

蘋果M2 芯片MacBook

2020-10-09 15:35:45

機器學習深度學習算法

2021-02-22 07:58:45

算法進程調度

2014-06-24 09:35:09

算法算法進化

2018-11-20 13:52:54

2017-09-26 11:06:15

數據庫索引查詢

2019-05-07 14:03:53

鼠標中鍵Windows 10Windows

2020-05-26 15:53:01

StraceDocker容器

2021-03-26 06:00:37

編程語言CPU

2023-11-22 13:18:02

Linux調度

2021-03-25 16:01:11

編程語言CPU機器語言

2023-03-20 09:42:06

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 男女黄网站 | 一级毛片免费视频 | 欧美一a| 欧美一区在线视频 | 色综合久久久久 | 91在线电影| 三区在线 | 亚洲精品99999| 一区二区三区精品 | 在线观看成人 | 欧美三区在线观看 | 国产日韩免费观看 | 91福利在线导航 | 伊人中文网| 成人免费小视频 | 亚洲免费在线 | 青青草社区 | 久久一区 | 国产综合在线视频 | 成人美女免费网站视频 | 91视频官网 | 国产网站在线播放 | v片网站| 精品自拍视频在线观看 | h视频在线免费 | 黄色一级免费观看 | 免费观看的av毛片的网站 | 国产成人免费 | 亚洲欧美日韩精品久久亚洲区 | 九色 在线 | 有码在线| 日韩一区二区三区精品 | 亚洲一区二区电影在线观看 | 国产成人精品免高潮在线观看 | 久久国产精品一区二区三区 | 国内精品视频在线观看 | 一区二区三区在线观看视频 | 国产一区二 | 成人黄色三级毛片 | 日韩欧美不卡 | 三级黄色大片网站 |