線程的兩種實現方式

? ? ? ?線程的兩種實現方式——內核支持線程(kernal Supported Thread, KST), 用戶級線程(User Level Thread, ULT)

1. 內核支持線程

? ? ? ? 顧名思義,內核支持線程即為在內核支持下的那些線程,它們的創建,阻塞,撤銷和切換等,都是在內核空間中進行的。

? ? ? ? 假如系統中設置的是內核支持線程,則調度便是以線程為單位進行的。

該線程實現方式的優點:

(1)在多線程處理器系統中,內核能夠同時調度同一進程中的多個線程并行執行。

(2)如果一個進程中的線程阻塞了,內核可以調用該進程下的其他線程占用處理器,也可調用其他進程的線程。

(3)內核支持線程具有最小的數據結構和堆棧,線程的切換比較快,開銷小。

(4)內核本身也可以采用多線程技術,可以提高線程的執行速度和效率。

該線程實現方式的缺點:

????????對于用戶的線程切換而言,其模式切換的開銷較大,在同一進程內,從一個線程切換到另一個線程時,需要從用戶態轉到內核態進行,這是因為用戶進程的線程在用戶態運行,而線程調度和管理是在內核實現的,系統開銷較大。

2. 用戶級線程

? ? ? ? 用戶級線程實在用戶空間中實現的。對線程的創建,撤銷,同步與通信等,都無需內核的支持,即用戶級線程與內核無關。在一個系統中的用戶級線程的數目可以到達數百個乃至數千個。

? ? ? ? 對于設置了用戶級線程的系統,其調度仍是以進程為單位進行的。

? ? ? ? 在進行跨進程調度時,用戶級線程需要內核支持。

? ? ? ? 該線程實現方式的優點:

(1)線程的切換無需轉換到內核空間,從而節省了模式切換的開銷。

(2)調度算法可以是線程專用的。

(3)用戶級線程的實現與OS平臺無關,因為對于線程管理的代碼是屬于用戶程序的一部分,所有的應用程序都可以對之進行共享。

? ? ? ? 該線程實現方式的缺點:

(1)系統阻塞調用問題。當線程執行一個系統調用時,不僅該線程被阻塞,該進程的所有線程都會被阻塞。而在內核支持線程中,則該進程中的其他線程仍然可以運行。

(2)在單純的用戶級線程實現方式中,多線程應用不能利用多處理機進行多重處理的優點,內核每次分配給一個進程的僅有一個CPU,因此,進程中僅有一個線程能執行,在該線程放棄CPU之前,其他線程只能等待。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/79993.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/79993.shtml
英文地址,請注明出處:http://en.pswp.cn/web/79993.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

vue3基礎學習(上) [簡單標簽] (vscode)

目錄 1. Vue簡介 2. 創建Vue應用 2.1 下載JS文件 2.2 引用JS文件 2.3 調用Vue方法?編輯 2.4 運行一下試試: 2.5 代碼如下 3.模塊化開發模式 3.1 Live Server插件 3.2 運行 4. 常用的標簽 4.1 reactive 4.1.1 運行結果 4.1.2 代碼: 4.2 ref 4.2.1 運行結果 4.2.2…

自定義分區器-基礎

什么是分區 在 Spark 里,彈性分布式數據集(RDD)是核心的數據抽象,它是不可變的、可分區的、里面的元素并行計算的集合。 在 Spark 中,分區是指將數據集按照一定的規則劃分成多個較小的子集,每個子集可以獨立…

深入解析HTTP協議演進:從1.0到3.0的全面對比

HTTP協議作為互聯網的基礎協議,經歷了多個版本的迭代演進。本文將詳細解析HTTP 1.0、HTTP 1.1、HTTP/2和HTTP/3的核心特性與區別,幫助開發者深入理解網絡協議的發展脈絡。 一、HTTP 1.0:互聯網的奠基者 核心特點: 短連接模式&am…

基于windows環境Oracle主備切換之后OGG同步進程恢復

基于windows環境Oracle主備切換之后OGG同步進程恢復 場景:db1是主庫,db2是備庫,ogg從db2備庫抽取數據同步到目標數據庫 db1 - db2(ADG) – ogg – targetdb 場景:db2是主庫,db1是備庫,ogg從db1備庫抽取數…

微服務,服務粒度多少合適

項目服務化好處 復用性,消除代碼拷貝專注性,防止復雜性擴散解耦合,消除公共庫耦合高質量,SQL穩定性有保障易擴展,消除數據庫解耦合高效率,調用方研發效率提升 微服務拆分實現策略 統一服務層一個子業務一…

【工奧閥門科技有限公司】簽約智橙PLM

近日,工奧閥門科技有限公司正式簽約了智橙泵閥行業版PLM。 忠于質量,臻于服務,精于研發 工奧閥門科技有限公司(以下簡稱工奧閥門)坐落于浙江永嘉,是一家集設計、開發、生產、銷售、安裝、服務為一體的閥門…

2025-5-15Vue3快速上手

1、setup和選項式API之間的關系 (1)vue2中的data,methods可以與vue3的setup共存 (2)vue2中的data可以用this讀取setup中的數據,但是反過來不行,因為setup中的this是undefined (3)不建議vue2和vue3的語法混用…

基于智能推薦的就業平臺的設計與實現(招聘系統)(SpringBoot Thymeleaf)+文檔

💗博主介紹💗:?在職Java研發工程師、專注于程序設計、源碼分享、技術交流、專注于Java技術領域和畢業設計? 溫馨提示:文末有 CSDN 平臺官方提供的老師 Wechat / QQ 名片 :) Java精品實戰案例《700套》 2025最新畢業設計選題推薦…

什么是路由器環回接口?

路由器環回接口(LoopbackInterface)是網絡設備中的一種邏輯虛擬接口,不依賴物理硬件,但在網絡配置和管理中具有重要作用。以下是其核心要點: 一、基本特性 1.虛擬性與穩定性 環回接口是純軟件實現的邏輯接口&#x…

HOT100 (滑動窗口子串普通數組矩陣)

先填坑 滑動窗口 3. 無重復字符的最長子串 給定一個字符串 s ,請你找出其中不含有重復字符的最長子串的長度。 思路:用一個uset容器存放當前滑動窗口中的元素 #include <bits/stdc++.h> using namespace std; class Solution {public:int lengthOfLongestSubstring(st…

工作實戰之關于數據庫表的備份

文章目錄 1. dbeaver導出相關表到本地2. 使用sql語句3. 導入數據 1. dbeaver導出相關表到本地 常規情況下&#xff0c;如果想備份數據庫的某張表&#xff0c;特別是臨時備份或者表中數據不多的情況下&#xff0c;直接將數據庫表中導出即可&#xff0c;后續可根據導出的insert語…

python克洛伊婚紗攝影預約管理系統

目錄 技術棧介紹具體實現截圖系統設計研究方法&#xff1a;設計步驟設計流程核心代碼部分展示研究方法詳細視頻演示試驗方案論文大綱源碼獲取/詳細視頻演示 技術棧介紹 Django-SpringBoot-php-Node.js-flask 本課題的研究方法和研究步驟基本合理&#xff0c;難度適中&#xf…

中間件-MQ常見問題

MQ常見問題 消息丟失消息會在哪些環節丟失應對機制 消息的順序性消息冪等消息積壓的處理 消息丟失 消息會在哪些環節丟失 網絡傳輸環節&#xff1a;生產者發送消息到broker&#xff0c;broker中master同步消息給slave&#xff0c;consumer消費消息&#xff0c;這3個環節都是跨…

【python實用小腳本-63】每天花費2小時修復黑白照片,Python一鍵轉換,節省90%時間(建議收藏)

一、應用場景故事 上周&#xff0c;我的朋友小李從家里翻出了一堆老照片&#xff0c;這些照片大多是彩色的&#xff0c;但他想把它們轉換成黑白風格&#xff0c;讓照片更有復古感。他嘗試用Photoshop一張張處理&#xff0c;但花了整整一個周末&#xff0c;才處理了不到一半的照…

分頁管理調試

一、分頁管理原理 基本概念&#xff1a; 物理內存被劃分為固定大小的頁框&#xff08;Page Frame&#xff09;&#xff0c;邏輯地址空間被劃分為相同大小的頁&#xff08;Page&#xff09;。 通過頁表&#xff08;Page Table&#xff09;實現邏輯地址到物理地址的映射。 邏輯…

搭建Hadoop集群standalone

在開始配置之前&#xff0c;請確保三臺虛擬機都正確啟動了&#xff01; 具體配置步驟如下。 1.上傳spark安裝包到某一臺機器&#xff08;例如:hadoop100&#xff09;。 spark.3.1.2-bin-hadoop3.2.tgz。 2.解壓。 把第一步上傳的安裝包解壓到/opt/module下&#xff08;也可以…

AJAX技術全解析:從基礎到最佳實踐

目錄 什么是 AJAX&#xff1f; 工作原理 XMLHttpRequest 基礎 現代 Fetch API Axios 第三方庫 數據處理 錯誤處理機制 跨域請求解決方案 最佳實踐 總結 1. 什么是 AJAX&#xff1f; AJAX&#xff08;Asynchronous JavaScript and XML&#xff09;是一種通過瀏覽器與…

128.在 Vue 3 中使用 OpenLayers 實現繪制矩形截圖并保存地圖區域

&#x1f4cc; 本文將介紹如何在 Vue 3 中使用 OpenLayers 實現&#xff1a; 1&#xff09;用戶可在地圖上繪制矩形&#xff1b; 2&#xff09;自動截取該區域地圖為圖片&#xff1b; 3&#xff09;一鍵保存為本地 PNG 圖片。 ?效果如下圖所示 &#x1f9e0;一、前言 在地圖類…

單片機 | 基于STM32的智能馬桶設計

基于STM32的智能馬桶設計結合了傳感器技術、嵌入式控制及物聯網功能,旨在提升用戶體驗并實現健康監測。以下是其設計原理、功能模塊及代碼框架的詳細解析: 一、系統架構與核心功能 智能馬桶的系統架構通常分為主控模塊、傳感器模塊、執行器模塊、通信模塊及用戶交互模塊,主…

最短路與拓撲(2)

1、信使 #include<bits/stdc.h> using namespace std; const int N105; int n,m; int g[N][N]; int dist[N]; bool st[N]; const int INF0x3f3f3f3f;int dij(){memset(dist,0x3f,sizeof dist);dist[1]0;for(int i1;i<n;i){int t0;for(int j1;j<n;j){if(!st[j]&…