我有幾個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