1事件核心物件23
事件型別物件有兩種不同型別,手動重置和自動重置
4手動重置:當乙個手動重置物件被觸發時候,等待該物件的所有執行緒變為可排程。
5自動重置:當乙個自動重置物件被觸發時,只有乙個等待該事件的執行緒會變為可排程67
下面是乙個建立事件核心物件的函式:
8handle createevent(
9lpsecurity_attributes lpeventattributes,
10bool bmanualreset,
11bool binitialstate,
12pctstr lpname );
1314
第一、四個引數和建立其它核心物件相似想必已經十分熟悉了。
15這裡就不介了哈。
16第二個引數bmanualreset是乙個bool值,告訴系統是手動重置物件(true),還是自動重置物件(false).
17第三個引數binitialstate是將事件初始化為觸發狀態(true),還是未觸發狀態(false)
1819
bool setevent( handle hevent ) ;
20該函式把事件變為觸發狀態
2122
bool resetevent( handle hevent ) ;
23該函式把事件變為未觸發狀態
2425
26使用方法:271
)28//定義乙個事件物件1
29handle g_hevent ;
30312)
32//
建立乙個手動重置的事件物件,並把事件出事話為觸發狀態
33 g_hevent =createevent(null,false,true,null);
34353)
36//
37dword winapi threadfunone(pvoid pvparam)
3844
45 #include "
windows.h
"46 #include "
iostream"47
using
namespace
std;
48long g_x = 0;49
50//
定義乙個事件物件1
51handle g_hevent ;
5253
//定義執行緒函式1
54dword winapi threadfunone(pvoid pvparam) ;
5556
//定義執行緒函式2
57dword winapi threadfuntwo(pvoid pvparam);
5859
intmain()
6084
85dword winapi threadfunone(pvoid pvparam)
8692
93dword winapi threadfuntwo(pvoid pvparam)
94
核心物件執行緒同步 概述
使用者方式同步的優點是它的 同步速度非常快。但它也有其侷限性。例如,互鎖函式家族只能在單值上執行,根本無法使執行緒進入等待狀態。可以使用關鍵 段使執行緒進入等待狀態,但是只能用這些 段對單個程序中的執行緒實施同步。還有,使用關鍵 段時,很容易陷入死鎖狀態,因為在等待進入關鍵 段時無法設定超時值。核心...
核心物件用於執行緒同步
事件核心物件 等待成功所引起的 當事件物件被觸發的時候,函式會檢測到這一情況,這裡它可以直接返回wait object 0給呼叫執行緒,但是在函式返回之前,它會使事件變為非觸發狀態 這就是 程序 執行緒沒有這樣的 其他物件有不同的 pluseevent 相當於setevent resetevent ...
windows核心物件執行緒同步
等待函式可使執行緒自願進入等待狀態,直到乙個特定的核心物件變為已通知狀態為止。waitforsingleobject 函式 dword waitforsingleobject handle hobject,dword dwmilliseconds 第乙個引數hobject標識乙個能夠支援被通知 未通...