我希望能夠切換到目標加入。 說t1等待t2。 t2還沒有退出,但現在我想t1等待t3。 有沒有辦法做到這一點?謝謝。pthreads加入 - 如何取消另一個線程的加入
2
A
回答
0
你不能讓t1等待t3,因爲在保持運行的同時沒有辦法中斷pthread_join,但是你可以用pthread_cancel取消t1,這將終止它,因此你將不再等待t2完成,並獲得一個不同的線程來等待t3。
0
我相信這是不可能的。但您可以按照pthread_join()
的說明進行操作。
的在pthread_join()函數是一個 方便,在 多線程應用程序已經被證明是有用的。它是 確實如果程序員通過將額外狀態作爲 參數的一部分傳遞給start_routine(),而未提供 ,則程序員可以模擬 此函數。終止線程將設置標誌爲 指示終止並且廣播作爲該狀態一部分的 條件; 連接線程將等待條件變量 。
3
這聽起來像你想的非便攜pthread_timedjoin_np
。
0
我認爲你應該在t1和t2之間使用一個條件變量,然後你可以將t3連接到t1。
0
簡單的方法來模擬pthread_timedjoin_np
可移植性:
- 創建一個新的線程來執行
pthread_join
,並把它傳遞一個條件變量或信號。 - 對條件變量或信號執行定時等待。
- 在新的線程上調用
pthread_cancel
。 - 在新的線程上調用
pthread_join
。
當然我已經留下了一些細節,但他們很容易填寫。
相關問題
- 1. 如何加入線程與另一個
- 2. Hibernate加入另一個加入的表
- 3. 線程多次加入()一個線程
- 4. 加入一個線程從另一個功能
- 5. 如何加入已經加入透視表與另一個表
- 6. 我將如何加入兩個線程?
- 7. 線程加入中的終止消息
- 8. 如何加入LINQ到另一個LINQ
- 9. 如何將多條線路加入另一個在記事本+
- 10. Java - 讀取另一個線程正在寫入stdout/stderr - 如何?
- 11. HQL加入另一個表
- 12. 另一個加入問題
- 13. 多個pthreads加入一個pthread的替代方法?
- 14. 線程是否在完成執行時出現另一個加入的線程?
- 15. MySQL加入。從一個表到另一個表加入多行?
- 16. 如何取消解析另一個線程中的xml
- 17. 在主線程被另一個線程寫入並且線程被加入後訪問變量是否安全?
- 18. 線程加入導致段故障時,另一個線程運行
- 19. 左加入一個QuerySet到另一個
- 20. 如何追加一個隱藏的輸入與另一個輸入的文本
- 21. 的Posix /線程加入
- 22. 關於線程的加入
- 23. 加入線程的問題
- 24. 如何取消從另一個線程發出http請求的線程
- 25. 一個線程讀取和另一個寫入volatile變量 - 線程安全?
- 26. 主題::加入和取消
- 27. Mysql的加入另一個表
- 28. 如何加入一個查詢到另一個查詢
- 29. 獲取Emacs的加入線殺線
- 30. 如何將主線程加入java中的線程池