windows - Windows 中的互斥与事件

标签 windows winapi events mutex

谁能解释一下如果我这样做有什么区别

mutex = createMutex
waitForSingleObject
Release(mutex)

event = createEvent
waitForSingleObject
Release(event)

我很困惑,我可以同时使用两个版本吗?在此先感谢您的帮助

最佳答案

您使用互斥锁来确保只有一个执行线程可以访问某些内容。例如,如果你想更新一个可能被多个线程使用的列表,你会使用互斥体:

acquire mutex
update list
release mutex

有了互斥体,一次只有一个线程可以执行“更新列表”。

如果您希望多个线程在继续之前等待某事发生,您可以使用手动重置事件。例如,您启动了多个线程,但它们都暂停了,等待其他事件才能继续。一旦该事件发生,所有线程都可以开始运行。

主线程看起来像这样:

create event, initial value false (not signaled)
start threads
do some other initialization
signal event

每个线程的代码是:

do thread initialization
wait for event to be signaled
do thread processing

关于windows - Windows 中的互斥与事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6913478/

相关文章:

php exec() 挂起

c - 调试和堆分配

c++ - 让用户在不退出进程的情况下关闭进程的分配控制台?

asp.net - 如何审核用户何时离开 ASP.NET 应用程序

windows - 当特定程序打开/关闭时运行Windows命令/脚本

windows - Windows中Rabbitmq Docker容器的正确路径

c# - IRandomAccessStream 与流

mysql - 无法远程连接到在 Windows 上运行的 MySQL (TCP/IP)

c - RegEnumValue 的错误代码 87

jquery - 在错误时显示工具提示并在按键时隐藏它的功能