2010-07-12 2 views
1

Im еще вроде новых для Objective-C и английского, я задаюсь следующим вопроскак убить заблокированную нить

я создал вспомогательный поток для чего-то, но он может быть заблокирован где-нибудь.

поэтому я установил таймер на 10 секунд, чтобы убить вспомогательный поток в случае его блокировки.

Вопрос заключается в том, 'как'

PS: можно ли пользователя performSelector: onThread: withObject: waitUntilDone: для меня.

ответ

5

Вместо того, чтобы просто убивать поток, который может быть заблокирован по совершенно веской причине, вы должны попытаться выяснить, почему поток блокируется. Если он ждет мьютекса или другого вида блокировки, то выясните, почему эта блокировка не освобождается. Может быть, причина блокировки может быть не в самой нити, а в какой-то другой части вашего кода.

Если вы просто убьете нить, вы можете прекратить блокировку других потоков, поскольку причина может быть не решена. Некоторые замки также могут быть оставлены в неизвестном состоянии, чтобы вы столкнулись с другими проблемами после его убийства.

+0

+1 для публикации того, что я слишком ленив, чтобы опубликовать – willcodejavaforfood

Смежные вопросы