我有几个pthread
儿童通过pthread_create
创建并标记为可连接。我可以用pthread_join
一个接一个地等他们,但我想等待加入任何人(即,只要其中任何一个结束)。 我如何知道pthread
终止了哪个子女? 是通过pthread_join
一个接一个地轮询他们的唯一解决方案吗?如何查询几个pthreads(儿童)知道哪一个终止
0
A
回答
0
按照我的理解,您需要一些异步方式来了解线程何时完成。正如许多人在评论中所说的那样有一个通知计划。我有类似的问题,但我的工作线程还需要一些沟通。我在主线程中有一个域套接字(listen),新线程所做的第一件事是连接并将其标识发送给主线程,最后一个是断开连接(关闭)。同时在主线程中,您可以使用优秀的select或epoll来了解fd何时关闭,根据该线索可以确定哪个线程已关闭以及要执行什么操作。
+0
一种便宜得多的通信方式是使用原子变量或者可以是一个队列(通过互斥体对并发访问保存)。还是我监督了一些事情? – Scheff
相关问题
- 1. 知道如果儿童类实现一个父类的方法
- 2. Bash脚本 - 如何知道一个程序已经终止
- 3. Mongo查询获取儿童
- 4. mySQL查询选择儿童
- 5. 如何查询是否不知道哪个表有数据?
- 6. 如何知道在SQL查询中使用了哪个索引?
- 7. 哪个NHibernate/SQL“Exists”查询更高效(以及如何知道)?
- 8. 如何知道哪个RIR服务器查询IP地址?
- 9. 不知道如何写这个查询
- 10. Sparql查询为儿童,孙辈,..一类
- 11. 哪个手风琴儿童被选中?
- 12. 如何在儿童停止传播时聆听儿童事件
- 13. 如何编写查询儿童的NHibenerate查询?
- 14. 展开查询Azure移动服务给儿童的儿童
- 15. 需要知道如何使用探查/使用哪一个
- 16. 如何让儿童指令知道所有父母的角度?
- 17. 订阅儿童路线变化,知道父母在选择儿童路线段?
- 18. 在这个子查询中,transact sql如何知道我在引用哪个表?
- 19. 如何检查儿童中的数据,在Firebase中的儿童
- 20. 如何防止更新儿童属性?
- 21. 如何获得阻止Magento儿童?
- 22. 如何防止儿童被移走?
- 23. 如何建立一个查询“你可能知道的人”
- 24. 我需要知道如何创建一个交叉表查询
- 25. 如何做一个不知道排序字段的查询?
- 26. 不知道如何建立一个快速查询
- 27. 不知道如何编写一个查询通过
- 28. 如何知道一个mongodb查询有多少匹配
- 29. 不知道如何写一个简单的查询
- 30. 如何更新单个galleryview儿童?
只需编码你想要的。如果您想知道某个线程何时终止,请编码以在终止之前/终止时通知您。或者有一个线程可以在'pthread_join'中为每个想要等待的线程阻塞,并让该线程告诉您何时其他线程使用任何您想要的方法终止。只需编码你想要的。 –
@DavidSchwartz欣赏你的想法。我可以用pthread_join一个接一个地等待它们,但是如果有一个直接的API可以帮助我完成子线程#,那么父线程可以同时完成一些其他任务 –
我认为这是[XY问题](https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)。你能详细说明你为什么要这么做吗? – StoryTeller