執行緒(英語:thread)是作業系統能夠進行運算排程的最小單位。它被包含在程序之中,是程序中的實際運作單位。一條執行緒指的是程序中乙個單一順序的控制流,乙個程序中可以併發多個執行緒,每條執行緒並行執行不同的任務
1、首先是定義程序:是執行中一段程式,即一旦程式被載入到記憶體中並準備執行,它就是乙個程序。程序是表示資源分配的的基本概念,又是排程執行的基本單位,是系統中的併發執行的單位。執行緒:單個程序中執行中每個任務就是乙個執行緒。執行緒是程序中執行運算的最小單位。2、乙個執行緒只能屬於乙個程序,但是乙個程序可以擁有多個執行緒。多執行緒處理就是允許乙個程序中在同一時刻執行多個任務。相同點:程序和執行緒都有id/暫存器組、狀態和優先權、資訊塊,建立後都可更改自己的屬性,都可與父程序共享資源、都不能直接訪問其他無關程序或執行緒的資源有以下4種方式:3、執行緒是一種輕量級的程序,與程序相比,執行緒給作業系統帶來側建立、維護、和管理的負擔要輕,意味著執行緒的代價或開銷比較小。
4、執行緒沒有位址空間,執行緒包含在程序的位址空間中。執行緒上下文只包含乙個堆疊、乙個暫存器、乙個優先權,執行緒文字包含在他的程序 的文字片段中,程序擁有的所有資源都屬於執行緒。所有的執行緒共享程序的記憶體和資源。 同一程序中的多個執行緒共享**段(**和常量),資料段(全域性變數和靜態變數),擴充套件段(堆儲存)。但是每個執行緒擁有自己的棧段, 暫存器的內容,棧段又叫執行時段,用來存放所有區域性變數和臨時變數。
5、父和子程序使用程序間通訊機制,同一程序的執行緒通過讀取和寫入資料到程序變數來通訊。
6、程序內的任何執行緒都被看做是同位體,且處於相同的級別。不管是哪個執行緒建立了哪乙個執行緒,程序內的任何執行緒都可以銷毀、掛起、恢復和更改其它執行緒的優先權。執行緒也要對程序施加控制,程序中任何執行緒都可以通過銷毀主線程來銷毀程序,銷毀主線程將導致該程序的銷毀,對主線程的修改可能影響所有的執行緒。
7、子程序不對任何其他子程序施加控制,程序的執行緒可以對同一程序的其它執行緒施加控制。子程序不能對父程序施加控制,程序中所有執行緒都可以對主線程施加控制。
**之前我的部落格中,會有解釋:
更加詳細的請看:
1. strtok不可重入,執行緒不安全
2. 加鎖的strtok不可重入,但執行緒安全
3. strtok_r可重入,執行緒安全
函式的分類:
linux 複習大綱(程序間的通訊)
1 有名管道與無名管道的區別 有名管道 任何程序之間 無名管道 父子程序之間 訊號量是乙個計數器,常用於處理程序或執行緒的同步問題,特別是對臨界資源的同步訪問。臨界資源可以簡單的理解為在某一時刻只能由乙個程序或執行緒進行操作的資源,這裡的資源 可以是一段 乙個變數或某種硬體資源。訊號量的值大於或等於...
數值分析複習大綱
首先吐槽真題了,真的是,厚厚的一本裡有幾題能做qaq 看完書覺著有點亂,決定寫部落格理理頭緒 1,誤差的分類 截斷誤差,捨入誤差,模型誤差,觀測誤差。數值分析中主要對前兩種進行研究 2,有效數字 規格化 0.aaaa 10 m 計算比較誤差 1 2 10 m l 計算得l,即為該僅近似值有l位有效數...
測試的複習大綱
軟體故障 軟體測試與軟體可靠性 軟體生存週期 測試原則 黑盒測試與白盒測試 軟體測試過程 單元測試 靜態測試與動態測試 回歸測試 alpha 測試 beta 測試 測試與除錯 測試生命週期 測試工具 測試評估 軟體質量評估 軟體過程成熟度 第二章第三章 結構性測試 程式控制圖 mccabe的基本路徑...