cnd_broadcast 仅唤醒在广播前等待的线程
cnd_broadcast only wakeup threads who wait before the broadcast
我发现了 cnd_broadcast
的奇怪行为
i 运行 2个线程,其中一个正在忙着做某事。
其中一个正在等待一份新工作。
并且主线程调用 cnd_broadcast
以通知所有线程没有剩余工作,因此它们可以 return。
然后主要等待 chid 线程到 return thrd_join
。
但并非所有 子线程都得到通知。只有在广播前等待的人才会收到通知。
和其他线程卡住等待信号。
这是它应该发生的事情吗?
结果是它的预期和记录。
cppreference > cnd_broadcast
我发现了 cnd_broadcast
的奇怪行为
i 运行 2个线程,其中一个正在忙着做某事。
其中一个正在等待一份新工作。
并且主线程调用 cnd_broadcast
以通知所有线程没有剩余工作,因此它们可以 return。
然后主要等待 chid 线程到 return thrd_join
。
但并非所有 子线程都得到通知。只有在广播前等待的人才会收到通知。
和其他线程卡住等待信号。
这是它应该发生的事情吗?
结果是它的预期和记录。 cppreference > cnd_broadcast