成人免费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

2025-06-30 00:05:00

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

2021-03-26 06:00:37

編程語言CPU

2020-05-26 15:53:01

StraceDocker容器

2021-03-25 16:01:11

編程語言CPU機器語言

2023-11-22 13:18:02

Linux調度
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久99精品久久久久久国产越南 | 免费一二区 | 日韩欧美成人一区二区三区 | 日韩一级 | 欧美精品一区二区在线观看 | 91精品国产91久久久久游泳池 | 麻豆91精品91久久久 | 亚洲精品视频免费观看 | 亚洲视频三 | 久久亚洲春色中文字幕久久久 | 91pron在线 | 一级午夜aaa免费看三区 | 成人久久18免费网站 | 国产成人精品一区二三区在线观看 | 久久久久久91 | 日韩欧美理论片 | 综合久久久久久久 | 久久精品av麻豆的观看方式 | 国产精品视频久久久久久 | 亚洲精品在线观 | 色综久久 | 日韩视频中文字幕 | 国产在线观看一区二区 | 日韩av在线一区二区 | 国产精品成人一区二区 | 国产在线观看网站 | 久久久久久综合 | 欧美精产国品一二三区 | 狠狠干天天干 | 国产精品第2页 | 精品二区视频 | 国产成人综合网 | 日韩一区中文字幕 | 亚洲性人人天天夜夜摸 | 国产一区二区在线观看视频 | 麻豆久久久久久久久久 | 四虎影院在线播放 | 91国内精品久久 | 毛片网在线观看 | 精品毛片 | 色综合九九 |