執行緒程序知識框架

2022-09-08 20:00:21 字數 2056 閱讀 5566

個人部落格,歡迎來撩 fangzengye.com

1.動態性

具有建立、就緒、阻塞、執行、結束的狀態

2.併發性

指多個程式能在乙個時間段內同時執行

3.獨立性

獨立執行、獨立獲取資源

4.非同步性

指各自獨立、不可預知的速度向前推進

1.就緒

2.執行

3.阻塞

4.掛起

4.1使用者需要

4.2父程序請求

4.3負荷調節

4.4作業系統的需要

定義

一組資料結構和一組操作,並且這組操作能同步程序和改變管程中的資料

1.訊號量通訊缺點

1.1效率低

1.2對使用者不透明

2.通訊型別

2.1共享儲存器系統l

2.1.1基於共享資料結構

2.1.2基於共享儲存區

2.2管道pipe通訊

2.2.1定義:連線讀操作和寫操作實現題目通訊的共享檔案

2.2.2互斥

2.2.3同步

2.2.4確定對方是否存在

2.3訊息傳遞系統

2.3.1定義:傳送格式化的訊息

2.3.2直接通訊方式:直接利用os提供傳送原語

2.3.3間接通訊方式:有共享中間實體

2.4客戶機-伺服器系統c/s

2.4.1套接字

2.4.1.1包含內容

目的位址

使用埠

傳輸層協議

程序所在的網路位址

2.4.1.2基於檔案型:對特殊檔案的讀寫實現通訊

2.4.1.3基於網路型:通過監埠接收資訊,和傳送資訊

2.4.1.4優勢:既可以在本計算機內實現通訊,也可以通過網路實現不同計算機通訊

2.4.2遠端過程呼叫

一種通訊協議

2.4.3遠端方法呼叫

3.訊息傳遞通訊的實現方式

3.1直接訊息傳遞系統:利用os所提供的傳送命令直接傳送給目標

3.1.1直接通訊原語

3.1.2訊息的格式

3.1.3程序同步方式

通訊鏈路

3.2通訊信箱:中間實體

3.2.1信箱的結構:是一種資料結構

信箱頭信箱體

3.2.2信箱通訊原語

信箱的建立與撤銷

訊息的傳送和接收

3.2.3信箱的型別

私用公用

共享

擁有資源的獨立單位

可排程和分派的基本單位(引入執行緒之後,由執行緒接管)

建立程序

撤銷程序

程序切換

作為排程和分派的基本單位
執行

就緒阻塞

1實現方式

1.1核支援執行緒

所有程序都在核心進行

1.2使用者級執行緒

1.2.1在使用者空間實現

1.2.2優點

執行緒切換不需到核心

可以對其使用專用的排程演算法

與os平台無關

1.3組合方式

2執行緒的實現

引入執行緒之前是程序

一如執行緒之後是執行緒

引入執行緒的os,同個程序的不同執行緒可以併發,甚至不同程序的不同執行緒也可以併發
程序獨立擁有資源,

執行緒擁有一點資源

建立同一程序的不同執行緒是為了提高併發性和相互合作

同一程序的不同執行緒的獨立性低得多

程序的系統開銷(建立、撤銷)明顯大於執行緒的開銷
同一程序的不同執行緒可以在不同處理機上執行,實現並行執行,提高效率。

現代多處理機os一般都引入執行緒,為了提高效率

程序 執行緒 執行緒池的相關知識

什麼是程序,什麼是執行緒 程序是資源分配的最小單位,執行緒是cpu排程的最小單位 乙個應用程式的執行就可以被看做是乙個程序,而執行緒是執行中的實際的任務執行者。可以說,程序中包含了多個可以同時執行的執行緒。我們在建立執行緒池的時候一般使用它的子類threadpoolexecutor.public t...

程序 執行緒知識點隨筆

優先順序反轉問題 所謂優先順序翻轉問題 priority inversion 即當乙個高優先順序任務通過 訊號量機制訪問共享資源時,該訊號量已被一低優先順序任務占有,而這個低優先順序任務在訪問共享資源時可能又被其它一些中等優先順序任務搶先,因此造成高優先順序任務被許多具有較低優先順序任務阻塞,實時性...

程序 執行緒 死鎖的相關知識

面試中經常會被問到,程序及執行緒的相關知識,這裡做乙個總結。很容易區分倆概念 干擾的記憶體空間,此空間,被分成幾個段 segment 分別是text,data,bss,heap,stack。執行緒 容易想到多執行緒,就是併發的執行多個任務。總結,程序是資源分配的基本單元,執行緒是cpu排程的最小單元...