Linux 執行緒 1 執行緒概述

2021-07-16 03:16:41 字數 566 閱讀 5509

程式是應用程式作為乙個靜態檔案儲存在計算機系統的硬碟等儲存空間中,而程序則是處於動態條件下由作業系統維護的系統資源管理實體,也就是程式的動態執行過程。

執行緒按照排程者可分為使用者級執行緒和核心級執行緒

使用者級執行緒:主要解決上下文切換問題,它的排程演算法和排程過程全部由使用者自行決定,執行不需要核心支援。在這裡,作業系統往往會提供乙個使用者空間執行緒庫,該庫提供了執行緒的建立、排程、撤銷等功能,而核心仍然僅對程序進行管理。如果乙個程序中某個執行緒呼叫了乙個阻塞的系統呼叫,那麼該程序以及程序中其他執行緒會同時被阻塞。由於這裡的處理器時間片分配是以程序為基本單位,所以每個執行緒執行的時間相對減少。因此,使用者級執行緒在乙個程序的多執行緒排程中無法發揮多處理器優勢。

核心級執行緒:由作業系統核心建立和撤銷。核心維護程序及執行緒的上下文資訊以及執行緒切換。乙個核心執行緒由於i/o操作而阻塞,不會影響其它執行緒的執行。核心級執行緒允許不同程序中線程按照同一相對優先排程方法進行排程,這樣可以發揮多處理器併發優勢。

現在作業系統基本上採用使用者級執行緒與核心級執行緒並存的方法,乙個使用者級執行緒可以對應乙個或多個核心級執行緒。在發揮多處理機效能的同時最大限度減少排程開銷。

Linux 多執行緒1

主要用到的幾個函式 作用建立執行緒 pthread create pthread t型別例項 這裡是個引用 在linux中pthread t被定義為 unsigned long int 要建立執行緒屬性,呼叫的執行緒函式,執行緒函式需要的引數 等待執行緒返回,阻塞式等待 pthread join 子...

Linux之執行緒(1)

今天講下linux執行緒這塊的知識,我想很多人應該都知道多執行緒的重要性,現在多執行緒被運用在專案中的次數越來越多,而且面試中多執行緒也是必問的,所以要引起我們足夠的重視將這塊的知識學紮實。在說執行緒之前我們不得不提到程序,從使用者角度來說 程序是執行中的程式 作業系統角度來說 程序是作業系統對執行...

執行緒池概述

在資源不足以滿足當前需求時,將資源圈定為池,反覆利用 計畫經濟 從而滿足當前需求,從本質上來講是一種以時間換空間的做法。執行緒池,是在存在大量任務的前提下,固定一定數量的執行緒去執行這些任務 提高了執行緒本身的利用率,減少了大量建立銷毀執行緒所帶來的效能開銷問題。構造函式引數 執行緒池建立方法的選擇...