執行緒同步 核心物件實現執行緒同步 事件核心物件

2022-04-20 11:11:02 字數 1512 閱讀 8510

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標識乙個能夠支援被通知 未通...