我在Linux(CentOS 5.3)產生多個線程的C++程序,這些線程在無限循環中執行作業並在特定的分鐘內休眠。 現在我不得不取消正在運行的線程,以防萬一有新的配置通知進來並且新啓動一組新的線程,爲此我已經使用了pthread_cancel。 我觀察到的結果是,即使接收到取消指示,線程也沒有停止,甚至有一些睡眠線程在睡眠完成後出現。使用pthread_cancel取消線程:很好的做法或不好
由於行爲不是所期望的,所以在所提到的場景中使用pthread_cancel會引發關於做法好壞的問題。
請評論上述場景中的pthread_cancel用法。
+1爲避免取消,這是最快的方式,內存泄漏,更糟。問禮貌地:) :) – 2011-01-21 18:56:02
好像我必須改變使用共享標誌終止線程的邏輯。 但是在其他說明我的程序有線程取消狀態設置爲異步,我相信,這是相關的立即終止線程後調用各自的清理處理程序。 – Mandar 2011-01-23 14:09:23