2010-07-12 118 views
1

我還在一種新的以Objective-C和英語,我想知道以下問題如何殺死一個阻塞的線程

我創建了一個子線程的東西,但它可能會在某個地方被阻塞。

所以我設置了一個定時器10秒來殺死子線程,以防止它被阻塞。

的問題是 '如何'

PS:是否有可能用戶performSelector:onThread:withObject:waitUntilDone:對我來說。

回答

5

而不是僅僅爲了完美的原因而殺死一個可能被阻塞的線程,你應該試着弄清楚爲什麼線程被阻塞。如果它正在等待一個互斥鎖或其他類型的鎖,那麼找出爲什麼該鎖沒有被釋放。這可能是因爲鎖的原因可能不在線程中,而是在代碼的其他部分。

如果你只是殺死線程,最終可能會阻塞其他線程,因爲原因可能尚未解決。某些類型的鎖也可能處於未知狀態,因此在殺死它後面臨其他問題。

+0

+1發佈我懶得發佈的內容 – willcodejavaforfood 2010-07-12 08:43:33