程序:家庭,家庭間資料獨立、位址獨立,通訊必須通過核心排程
執行緒:家庭成員,家庭成員間資料共享
一. 程序間通訊(ipc):管道、有名管道、訊息佇列、訊號量、共享記憶體、訊號、套接字(網路通訊)
2. 訊號量:類似計數器,處理程序或執行緒同步問題,特別是對臨界資源(某一時刻只能由乙個程序或執行緒操作的資源)的訪問同步問題
3. 訊息佇列:存放在核心的訊息鍊錶中
4. 共享記憶體:分配一塊能被其他程序訪問的記憶體。需要其他互斥鎖、訊號量等同步機制。保持共享區域,直到通訊完畢。
5. 管道:單向傳遞資料,半雙工;只用於有親緣關係(父子程序、兄弟程序)的程序間通訊;
7. 套接字:用於不同主機間的程序通訊。
二. 執行緒間通訊:鎖機制、訊號量機制、訊號機制
1. 鎖機制:包括互斥鎖、條件變數、讀寫鎖。
2. 訊號量機制:無名執行緒訊號量和命名執行緒訊號量。
3. 訊號機制:類似程序間的訊號處理
三. 程序/執行緒間同步機制
臨界區、互斥量、訊號量和事件四種方式
1. 臨界區:同一時間只允許乙個執行緒搶占臨界區資源,其他執行緒掛起只有等待該執行緒退出後才能進行搶占。(同一程序)
2. 互斥量:擁有互斥物件的執行緒可以同一時間訪問同一共享資源。(跨程序)
3. 訊號量:允許同一時刻多個執行緒同時訪問同一資源,但是執行緒數目有限。(跨程序)
4. 事件:通知操作實現執行緒同步。(跨程序)
關於程序和執行緒
什麼是程序。最直觀的就是乙個個 pid,官方的說法就 程序是程式在計算機上的一次執行活動。執行緒是可執行 的可分派單元。這個名稱 於 執行的線索 的概念。在基於執行緒的多工的環境中,所有程序有至少乙個執行緒,但是它們可以具有多個任務。這意味著單個程式可以併發執行兩個或者多個任務。1.概念 程序 正在...
C 關於程序與執行緒 三
一 建立多執行緒應用程式 執行緒,也被稱為輕量程序,指執行中程式的排程單位。目前大部分平台都支援多執行緒,允許程式中存在多個執行緒。在windows作業系統的任務管理器中就可以檢視執行緒,把選擇列對話方塊的執行緒計數選上即能顯示每個程序的執行緒數。在本節的例項中,建立了乙個最簡單的多執行緒應用程式。...
關於執行緒和程序的使用
最近在研究android自動化測試,為了減小log日誌,每次迴圈執行之後清空日誌,在迴圈體中使用執行緒,如下 new thread new runnable catch ioexception e catch interruptedexception e start thread.interrupt...