和漂亮岳做爰2_和漂亮老师做爰6_年轻漂亮少妇6_和漂亮老师做爰4_漂亮人妻互换HD中字_漂亮人妻洗澡被强公BD

行業新聞

行業新聞

在Linux中導致線程切換的操作是什么

發布時間:2020-06-16 點擊數:1564

 在Linux中導致線程切換的操作是什么?針對此問題,本文提供了相應的分析和答案,希望可以幫助更多希望解決此問題的朋友找到一種更簡單的方法。

Linux中引起線程切換的操作


Linux使用一對一線程模型,用戶線程切換和內核線程切換之間的差異很小。同時,如果您忽略了放棄用戶線程執行權的用戶成本(收益),則只需考慮內核線程切換的成本。

注意,這只是為了簡化理解。實際上,用戶線程庫在用戶線程的調度和同步中做了很多工作,這部分開銷不可忽略。

如JVM在Thread#yield()上所解釋的:如果底層OS不支持yield的語義,則JVM允許用戶線程旋轉到時間片的末尾,并且該線程被動切換以實現類似的效果。

是什么導致線程切換

時間片旋轉

線程阻塞

線程主動放棄時間片

直接開銷

直接開銷是由線程切換本身引起的,這是不可避免的,并且不可避免地會發生。

在用戶模式和內核模式之間切換

線程切換只能在內核狀態下進行。如果當前用戶處于用戶狀態,將不可避免地導致用戶狀態和內核狀態之間的切換。 (<font color =“ red”>“在用戶模式和內核模式之間切換”的費用是多少?</ font>)

上下文切換

如前所述,線程(或進程是任意的)信息需要使用task_struct保存。切換線程時,必須從內核中切出舊線程的task_struct,并切入新線程以進行上下文切換。另外,您還需要切換寄存器,程序計數器,線程堆棧(包括操作堆棧,數據堆棧)等。

線程調度算法

線程調度算法需要管理線程的狀態,等待條件等。如果調度基于優先級,則還需要維護優先級隊列。如果線程頻繁切換,則不應低估成本。

高架

間接開銷是直接開銷的副作用,并且取決于系統實現和用戶代碼實現。

快取未命中

要切換進程,需要執行新的邏輯。如果兩者訪問的地址空間不相似,將導致高速緩存未命中,具體影響取決于系統實現和用戶代碼實現。如果系統高速緩存很大,則可以減少高速緩存未命中的影響;如果用于用戶線程訪問數據的地址空間較小,則高速緩存未命中率本身相對較低。

在此共享了導致Linux中線程切換的操作,希望全網數據小編的分享能幫助到你,全網數據為廣大用戶提供專業化深圳服務器托管,深圳服務器租用,深圳主機托管,云服務器租用等服務器資源,詳情歡迎咨詢客服了解。
?

用戶至上,用心服務

全網數據以"用戶至上,用心服務每一位用戶"為宗旨,您可以把您的應用放心的交給我們,全網數據為您提供完美解決方案和數據中心服務。

免費咨詢
舒兰市| 托里县| 通化市| 大城县| 蒙山县| 安西县| 鄂尔多斯市| 平利县| 文安县| 泽库县| 宣汉县| 岐山县| 抚松县| 体育| 名山县| 淅川县| 宝丰县| 呼玛县| 千阳县| 姜堰市| 印江| 海伦市| 华蓥市| 屏东市| 沂源县| 万山特区| 顺平县| 东源县| 磴口县| 来安县| 鄯善县| 苗栗县| 固安县| 宝坻区| 且末县| 腾冲县| 桐庐县| 吴桥县| 盐池县| 巴林左旗| 平果县|