使用者方式同步的優點是它的
同步速度非常快。但它也有其侷限性。
例如,互鎖函式家族只能在單值上執行,根本無法使執行緒進入等待狀態。可以使用關鍵**段使執行緒進入等待狀態,但是只能用這些**段對單個程序中的執行緒實施同步。還有,使用關鍵**段時,很容易陷入死鎖狀態,因為在等待進入關鍵**段時無法設定超時值。
核心物件機制的適應性遠遠優於使用者方式機制。實際上,核心物件機制的唯一不足之處是它的速度比較慢(使用者方式轉為核心方式是1000個cpu週期)。
程序核心物件總是在未通知狀態中建立的。當程序終止執行時,作業系統自動使該程序的核心物件處於已通知狀態。
執行緒核心物件總是在未通知狀態中建立。當執行緒終止執行時,作業系統會自動將執行緒物件的狀態改為已通知狀態。
下面的核心物件可以處於已通知狀態或未通知狀態:
■ 程序
■ 檔案修改通知
■ 執行緒
■ 事件
■ 作業
■ 可等待定時器
■ 檔案
■ 信標
■ 控制台輸入
■ 互斥物件
執行緒同步的各種核心物件:事件、等待計數器,信標和互斥物件。
執行緒同步 核心物件實現執行緒同步 事件核心物件
1 事件核心物件23 事件型別物件有兩種不同型別,手動重置和自動重置 4手動重置 當乙個手動重置物件被觸發時候,等待該物件的所有執行緒變為可排程。5自動重置 當乙個自動重置物件被觸發時,只有乙個等待該事件的執行緒會變為可排程67 下面是乙個建立事件核心物件的函式 8handle createeven...
核心物件執行緒同步 信標核心物件
信標核心物件用於對資源進行計數。乙個使用數量 乙個是最大資源數量 用於標識信標能夠控制的資源的最大數量 乙個是當前資源數量 用於標識當前可以使用的資源的數量 如果當前資源的數量大於0,則發出信標訊號。如果當前資源數量是0,則不發出信標訊號。系統決不允許當前資源的數量為負值。當前資源數量決不能大於最大...
核心物件用於執行緒同步
事件核心物件 等待成功所引起的 當事件物件被觸發的時候,函式會檢測到這一情況,這裡它可以直接返回wait object 0給呼叫執行緒,但是在函式返回之前,它會使事件變為非觸發狀態 這就是 程序 執行緒沒有這樣的 其他物件有不同的 pluseevent 相當於setevent resetevent ...