2011-10-24 88 views
1

我有很多可連接在某些時候需要停下來的線程。這些線程是pthread,但是通過RTAI的用戶空間界面創建(儘管不介意RTAI)。我應該加入一個已被殺死的線程嗎?

對於每個線程我有一個變量,我可以設置告訴他們退出。所以我要做的就是:

  • 組爲每個線程變量,以便他們停止
  • 最多等待1秒
  • 加入會話

現在的問題是,因爲我使用RTAI,它使用內核空間夥伴線程爲我工作,如果出現問題,線程可能無響應(它從來沒有發生過,但我必須小心,以防萬一出錯)。在這種情況下,我只是殺死線程。

所以,我的問題是,一旦你有一個死亡的線程,你應該join嗎?

回答

4

殺死一個線程不會改變你是否應該加入它。如果 線程尚未分離,那麼您需要加入它,否則您將在系統中泄漏 資源。

+1

有沒有這樣的事情,「殺死一個線程」,所以我不知道這個答案(甚至是問題)的意思是什麼...... –

+0

大概,他的意思是'pthread_cancel'(但當然,不一定會對此作出反應)。 –