執行緒概念和多執行緒模型

2021-10-02 16:19:49 字數 1581 閱讀 8178

程序是伴隨著多道程式技術而引入的

和程序一樣,執行緒有它的tcb和id,也有就緒,阻塞,執行三種狀態

執行緒幾乎不擁有系統資源,系統資源是分配給程序的,同一程序內的執行緒共享程序的資源

同一程序內的執行緒間切換,不用切換程序環境。

執行緒分為 使用者級執行緒 和 核心級執行緒(即守護執行緒)

使用者級執行緒 由 應用程式 通過 執行緒庫 建立和管理

使用者級執行緒間的切換 也由 應用程式 負責管理(在使用者態下就可以完成)

事實上,對使用者來說,是有多個執行緒,但是對作業系統核心來說,並看不見執行緒的存在。

使用者級執行緒只有使用者能看到,作業系統根本看不到!!!

核心級執行緒 由作業系統負責管理

核心級執行緒的切換 需要在核心態下完成

核心級執行緒 就是 作業系統能看到的

注意: 核心級執行緒 才是 處理機分配的 單位

下圖中的這個程序有三個使用者級程序,兩個核心級執行緒。但即使在乙個四核cpu上,最多只能占用兩個核,只能有兩個使用者執行緒並行執行。

多執行緒模型問題:

所謂多執行緒模型就是指 幾個使用者級執行緒對映到幾個核心級執行緒的問題

多對一模式:多個使用者執行緒對映到乙個核心執行緒

優點:使用者級執行緒 在 使用者態 即可完成切換,開銷小

缺點:併發度低,乙個使用者執行緒阻塞將導致整個程序阻塞。多個執行緒也不能在多處理機上執行

一對一模式:乙個使用者執行緒對應乙個核心級執行緒

優點:併發度高,乙個執行緒阻塞後其它執行緒可以繼續執行

缺點:執行緒切換要在核心態下完成,開銷大

多對多模式:

n個使用者執行緒對映到m個核心執行緒(n>=m)

既克服了 多對一模型中併發度低的缺點,又克服了一對一模型中占用太多核心級執行緒的缺點

回顧:執行緒是處理機排程的單位

核心級執行緒才是作業系統進行處理機分配的單位

多對一模型中,乙個使用者級執行緒阻塞將導致整個程序的阻塞

王道 執行緒概念和多執行緒模型

6 多執行緒模型 在引入程序之前,系統中各個程式只能序列執行 引入程序之後,系統中各個程序之間可以併發執行 有的程序可能需要 同時 做很多事情,而傳統的程序只能序列地執行一系列程式。為此,引入了 執行緒 來增加併發度 傳統的程序是程式執行流的最小單位,也就是說cpu處理的是乙個個程序 在程序中引入了...

6 執行緒的概念和多執行緒模型

系統在建立乙個新進 程時,便為它分配乙個任務資料區 ptda per task data area 其中包括若干個執行緒控制塊tcb空間。只要其所建立的執行緒數目未超過系統的允許值 通常為數十至數百個 系統可再為之分配新的tcb空間 1 執行時系統 2 核心控制線程 輕型程序 light weigh...

多執行緒概念

概念 多執行緒 是指從軟體或者硬體上實現多個執行緒併發執行的技術,多執行緒包括軟體多執行緒和硬體多執行緒。軟體多執行緒 即便處理器只能執行乙個執行緒,作業系統也可以通過快速的在不同執行緒之間進行切換,由於時間間隔很小,來給使用者造成一種多個執行緒同時執行的假象。程序 是指計算機中已執行的程式.並行 ...