c++ - 在 POSIX 中,我可以保存信号以供调用条件等待的其他线程使用吗? (这些线程来自同一个进程)

标签 c++ multithreading unix posix

POSIX 线程: 我有两个使用两个不同线程调用的函数。在线程中使用条件等待 在其他发送信号的情况下。 由于任何线程都可以更早执行,因此即使未调用 wait 也可能发送信号。 我想保存已发送的信号,以便当调用 wait 时同一进程的其他线程可以使用之前调用的信号。在 POSIX 中有什么方法可以这样做吗?

最佳答案

如果没有服务员,POSIX 条件变量信号就会丢失。此外,虚假信号可能会提前结束等待。这就是为什么应该始终在 while 循环中等待状态更改,而不是单独等待条件变量信号。

对于您的特定任务,您可能可以使用类似 semaphore 的东西.

关于c++ - 在 POSIX 中,我可以保存信号以供调用条件等待的其他线程使用吗? (这些线程来自同一个进程),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12349276/

相关文章:

c++ - 使用 boost 预处理器迭代调用可变参数模板

c++ - 以未指定大小、空括号定义的静态数组?

Python:使用 linecache 读取大量文件与普通文件访问 open()

c++ - 有时可以在 C++ 中使用 std::atomic 代替 std::mutex 吗?

ios - 您可以通过 Objective-C 中的 "system"命令在 iOS 上访问哪些 shell 命令?

python - lsof 有什么方法可以显示整个 argv 数组而不仅仅是 argv[0]

c++ - 内联 gcc 汇编和局部变量( double )

c++ - 使用#pragma 和#ifdef 的多行宏

c++ - 无法修改其他线程中 ref 传递的值

unix - 正常运行时间命令结果是什么意思