執行緒的同步方式

2021-10-11 16:24:06 字數 769 閱讀 9569

併發:同乙個時間段有多個程式在同乙個cpu上輪流執行;

並行:同一時間多個程式在不同cpu上同時執行。

併發是在時間段的表象,並行是在時刻的表象。

同步:執行緒之間具有依賴關係,乙個執行緒的執行依賴於另乙個執行緒的訊息。

互斥:對於程序的某一共享資源,同一時刻只允許乙個執行緒訪問。

互斥是一種特殊的同步。

實現執行緒同步的方式有臨界區(critical section)、互斥量(mutex)、訊號量(semaphore)、事件(event)。

臨界區與互斥量是通過擁有權實現執行緒控制,只有擁有該物件的執行緒可以執行,用於執行緒的互斥控制。訊號量與事件通過通知實現執行緒控制,收到通知的執行緒可以執行,用於執行緒的同步控制。

其中,互斥量、訊號量、事件為核心物件。

對某共享資源定義臨界區,當乙個執行緒進入臨界區後,其他想要訪問臨界區資源的執行緒將處於掛起狀態,直到當前執行緒離開臨界區,其他執行緒才可訪問。

互斥量與臨界區相似,只有使用者互斥量的執行緒可以訪問資源。區別是:臨界區在乙個程序中實現資源控制,互斥量可以在不同程序中實現資源安全共享(需在建立互斥量時,對其命名,不同程序根據名稱確保訪問的是同乙個互斥量)。

訊號量是維護0到指定最大值之間的同步物件。計數大於0時有訊號,可訪問共享資源,計數等於0時無訊號,不可訪問,需等待直到其他執行緒釋放訊號量。

事件包括觸發狀態和未觸發狀態,只有事件觸發時,該事件物件才會被等到,資源得以訪問。等到之後將事件置為未觸發狀態(或在建立事件物件時,宣告等到之後自動置為未觸發狀態)。資源訪問結束後,重新將事件置為觸發狀態,以便其他執行緒訪問。

執行緒同步的方式

一 什麼是執行緒的同步 當多個執行緒同時訪問其共享的資源時,需要相互協調,以防止出現資料不一致 不完整的問題,能達到這種狀態執行緒同步 二 執行緒同步的方式 1 互斥量 互斥鎖 如果乙個執行緒要訪問一塊資料時,它就呼叫mutex lock,如果互斥量是處於解鎖狀態,也就是說這塊資料可用,那麼就呼叫成...

執行緒同步的方式

同步 同步就是協同步調,按預定的先後次序進行執行。如 你說完,我再說。這裡的同步千萬不要理解成那個同時進行,應是指協同 協助 互相配合。執行緒互斥 指對於共享的程序系統資源,在各單個執行緒訪問時的排它性。當有若干個執行緒都要使用某一共享資源時,任何時刻最多隻允許乙個執行緒去使用,其它要使用該資源的執...

執行緒同步方式

1.原子訪問 同一時刻只允許同一執行緒訪問資源 變數 關鍵字 volatile 防止編譯優化,對特殊位址進行穩定訪問 可直接操作記憶體 2.關鍵段 同一時刻只允許乙個執行緒訪問乙個 段 initializecriticalsectionandspincount 變數名,0 例 global vari...