微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否正在等待一个虚假的唤醒事件?

SleepConditionVariableCS的MSDN页面声明

条件variables会受到虚假的唤醒(与明确唤醒不相关的唤醒)和被盗唤醒(另一个线程在唤醒线程之前运行)的影响。 因此,在睡眠操作返回之后,应该重新检查谓词(通常在while循环中)。

结果,有条件的等待必须被包含在一个while循环中

while (check_predicate()) { SleepConditionVariableCS(...) }

如果我要使用事件而不是条件variables,可以在等待( WaitForSingleObject )等待事件发送信号的时候使用while循环吗?

如何快速获取dbus上的所有VLC实例?

你如何优雅地退出Java的进程?

.NET或Windows同步基元性能规范

Helgrind for Windows?

C ++挂钩到不同的应用程序,如何从进程IDfind线程ID?

如何知道一个线程是否在等待队列上

Linux C / C ++套接字发送multithreading代码

为什么`ps` list> 2个Java线程/“轻量级进程”当我只创build了两个?

测量Linuxmultithreading应用程序的堆栈使用情况

在Linux中使用硬件性能计数器

对于WaitForSingleObject() ,没有虚假的唤醒,所以你可以消除循环。

如果在bAlertable=TRUE ,带有唤醒掩码的MsgWaitForMultipleObjectsEx()或带有bAlertable=TRUE MsgWaitForMultipleObjectsEx()或唤醒掩码中使用WaitForMultipleObjectsEx() ,则可以在实际发送事件之前等待其他条件。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐