VS C++ 线程篇之线程同步

本文探讨了在VS C++中如何实现线程同步,以控制不同线程的执行顺序和协调。通过API介绍,展示了等待子线程执行完毕、线程间变量值传递的控制以及多个线程同步等待的例程,确保了线程操作的有序性和安全性。
摘要由CSDN通过智能技术生成

线程同步解决
        不同线程函数的执行顺序,进行线程协调。  

API

DWORD WINAPI WaitForSingleObject(
	HANDLE hHandle,		// 对象句柄 Thread/Event/Job/Mutex/Process/Semaphore/Waitable timer/Memory resource notification
	DWORD dwMilliseconds	// 等待时间,INFINITE一直等待
);

返回值
	WAIT_TIMEOUT 0x00000102L	// 等待超时
	WAIT_OBJECT_0 0x00000000L	// 等待到了指定对象发出信号状态
	WAIT_ABANDONED 0x00000080L	//  当 hHandle 为 mutex 时,拥有mutex的线程在结束时没有释放内核对象会返回该值。
	WAIT_FAILED ((DWORD)0xFFFFFFFF). 	// 调用GetLastError获得错误信息
DWORD WINAPI WaitForMultipleObjects(
	DWORD nCount,		// 等待线程数量(最多MAXIMUM_WAIT_OBJECTS个)
	const HANDLE* lpHandles,	// 线程句柄指针数组(包含多个线程句柄)
	BOOL bWaitAll,			// 是否全部等待,TRUE,若所有线程都为已通知状态则函数返回 WAIT_OBJECT_0
							// FALSE 返回值为线程内核对象数组的索引值
	DWORD dwMilliseconds		// 等待时间
);
返回值
	WAIT_OBJECT_0 to (WAIT_OBJECT_0 + nCount– 1)
	WAIT_ABANDONED_0 to (WAIT_ABANDONED_0 + nCo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值