事件 同步

这篇博客详细介绍了如何在Windows环境下使用事件进行线程同步。首先,通过创建事件和定义全局变量来初始化,接着创建两个线程,并设置事件通知类型。线程执行过程中,利用事件句柄进行状态控制。最后,等待线程结束并销毁内核对象。
摘要由CSDN通过智能技术生成

一、通知类型

 HANDLE CreateEvent(
  	LPSECURITY_ATTRIBUTES lpEventAttributes, 	// SD
  	BOOL bManualReset,                       		// reset type
  	BOOL bInitialState,                      			// initial state(是否有信号)
  	LPCTSTR lpName                           			// object name
);

1、创建一个事件CreateEvent(),定义一个全局变量

HANDLE	g_hEvent;
g_hEvent  = CreateEvent(NULL,TRUE,FALSE,NULL);

2、创建两个线程

	HANDLE ArrhThread[2];
	ArrhThread[0] = CreateThread(NULL,0,ThreadProc1,NULL,0,NULL);
	ArrhThread[1] = CreateThread(NULL,0,ThreadProc2,NULL,0,NULL);

3、设置事件通知类型

SetEvent(g_hEvent);

4、等待线程结束,销毁内核对象

WaitForMultipleObjects(2,ArrhThread,TRUE,INFINITE); //创建的事件是互斥类型,此时会将状态改变
CloseHandle(ArrhThread[0]);
CloseHandle(ArrhThread[1]);

5、创建线程内容

DWORD WINAPI ThreadPr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值