執行緒知識概覽

2022-01-10 09:09:32 字數 738 閱讀 8484

20世紀60年代人們提出了程序的概念,到20世紀80年代中期人們提出了比程序更小的能獨立執行的基本單位——執行緒,試圖用它來提高系統內程式併發執行的程度從而進一步提高系統的吞吐量。

執行緒具有傳統程序所具有的特徵,所以稱之為輕型程序或程序元,相應的把傳統程序稱之為重型程序。

乙個程序可以擁有若干個執行緒,至少乙個。

輕型實體

獨立排程和分派的基本單位

可併發執行

共享程序資源

排程進度是資源分配的基本單位,執行緒是排程和分派的基本單位,執行緒幾乎不擁有系統資源更輕量級,能顯著提高系統的併發程度。

在同乙個程序中,執行緒的切換不會引起程序的切換。但從乙個程序中的執行緒切換到另外乙個程序中的執行緒時會引起程序的切換。

並發行程序和執行緒都可以併發執行,這使得作業系統具有良好的併發性,從而能夠更加有效的提高系統資源的利用率和系統的吞吐量。引入執行緒使得系統具體更好的併發性

資源程序是擁有資源的基本單位,執行緒幾乎不擁有系統資源,但是可以訪問它隸屬的程序的資源,程序的資源可以供該程序下的所有執行緒所共享

系統開銷

建立或撤銷程序時,系統都要為之建立和**程序控制塊,分配和**資源如記憶體空間和i/o裝置等,作業系統所付出的開銷明顯大於執行緒建立或撤銷時的開銷。

程序的切換也會比執行緒的切換更費時,程序切換的代價比執行緒切換要高。

乙個程序中的多個執行緒具有相同的位址空間,在同步和通訊的實現方面也比程序容易。

互斥鎖(mutex)

條件變數

訊號量

執行緒知識結構概覽

1 執行緒系統的三個基本要素 執行環境,排程,同步。同步 使用互斥量來保護共享資料,使用條件變數來通訊,使用條件變數來通訊,其他同步機制,如訊號量管道和訊息佇列。互斥量允許執行緒在訪問共享資料 鎖定他,以避免其他執行緒干擾。條件變數允許執行緒等待共享資料到達某個期望的狀態。佇列非空或者資源可用 型別...

ROS知識概覽

ros是乙個適用於機械人的開源的元作業系統。它提供了作業系統應有的服務,包括硬體抽象,底層裝置控制,常用函式的實現,程序間訊息傳遞,以及包管理。它也提供用於獲取 編譯 編寫和跨計算機執行 所需的工具和庫函式。在某些方面,ros相當於一種 機械人框架 類似的 機械人框架 有 player,yarp,o...

ThreadPool 之 執行緒池概覽

因為程序的切換相當耗費資源,加上 cpu 的發展,作業系統中引入了執行緒的概念。相比於程序的上下文切換,執行緒的切換更輕量級,但是不代表沒有開銷,而且大部分多執行緒的生命週期都比較短,會發生頻繁的執行緒建立 銷毀動作,這也是相當消耗資源的,因此引入了執行緒池。合理利用執行緒池能夠帶來三個好處。第一 ...