WINAPI 函数 WaitForSingleObject(2)

本文介绍了如何使用WaitForSingleObject函数实现线程间的同步。通过互斥对象的两种状态(有信号和无信号),确保多个线程在访问同一资源时不会发生冲突。例如,在写入同一文件时,通过检查互斥对象的状态来避免并发写操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

WaitForSingleObject(hMutex,INFINITE);

hMutex 为已创建的 互斥对象的句柄,一旦互斥对象处于有信号状态,则该函数返回。
如果互斥对象始终处于无信号状态,即未通知状态,则函数一直等待。
这个对象有两个状态比如我们称0和1,有信号和无信号就是相对的两个状态,你就认为一个状态是0另一个状态是1。在程序里如果加了WaitForSingleObject,那么程序到这里就去检测你给他的那个句柄的状态,如果是0程序就停在这里了,如果是1,程序就继续下去。那么线程同步就要利用这两个状态。假如你有两个线程,都有可能访问同一个文件,而同一个文件是不能被两个线程同时写入的,那么你就需要在写入之前先判断文件有没有被另一个线程在写入,如果有则等着,等另一个线程写完之后你再继续,我们不能用一个死循坏来尝试打开文件知道成功为止,这样会让CPU有非常高的占用率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值