multithreading - 使线程等待条件,但允许线程在等待或侦听信号时保持可用
问题描述
给定线程 A 必须将工作分派给线程 B 的情况,是否有任何同步机制允许线程 A 不返回,但仍可用于其他任务,直到线程 B 完成,然后线程 A 可以返回?
这不是特定于语言的,但简单的 c 语言将是对此做出回应的绝佳选择。
这可能是绝对违反直觉的。听起来确实如此,但我必须在假设之前先问一下……
请注意 This is a made up hypothetical situation
,我感兴趣。我不是在寻找现有问题的解决方案,因此替代的并发解决方案完全没有意义。我没有它的代码,如果我在其中,我可以想到一些替代代码工程解决方案来避免这种设置。我只是想知道一个线程是否可以以某种方式使用,同时等待来自另一个线程的信号,以及为此使用什么同步机制。
更新
正如我上面提到的,我知道如何同步线程等。我只对我在这里介绍的情况感兴趣。互斥量、信号量和锁各种机制都会同步访问资源,同步事件顺序,同步各种并发问题,是的。但我对如何正确地做到这一点不感兴趣。我只是编造了这种情况,我想知道它是否可以通过前面描述的机制来解决。
更新 2
似乎我为那些认为自己是并发专家的人打开了一个门户,他们可以随机传送和讲授他们认为世界其他地方不知道线程是如何工作的。我只是问是否有这种情况的机制,而不是解决方案,不是“同步的正确方法”,也不是更好的方法。我已经知道我会做什么,而且永远不会陷入这种虚构的境地。这只是假设。
解决方案
推荐阅读
- google-cloud-run - 将 Cloud Run 实例连接到外部 RabbitMQ 实例 (CloudAMQP)
- google-sheets - 我可以根据位于同一文件中但在谷歌表格中的其他工作表上的单元格设置条件格式吗?
- html - 处理可能不足以容纳包装器宽度的图像
- java - 应该为 vscode 设置什么 java.testMethod 来运行 junit 测试
- c++ - QNetworkAccessManager 和 cookie
- python - 用变量 ion python3 计数
- javascript - 有没有办法在 javascript 中对多数组进行排序,例如 ASC 中的第 1 列和 DESC 顺序中的第 2 列?
- c++ - C++ 从字符串中读取内存
- api - Etsy Api v3 __SELF__
- r - 在 R 中将 tbl_df 结果转换和导出到 xlsx 时出错