Безопасны ли Thread.stop и его друзья в Java?
,stop()
suspend()
, а такжеresume()
вjava.lang.Thread
устарели, потому что онинебезопасный, Солнце рекомендует работать вокруг, чтобы использоватьThread.interrupt()
но такой подход неработает во всех случаях. Например, если вы вызываете метод библиотеки, который нет явно или неявно проверитьinterrupted
флаг, у вас нет выбора, кроме как дождаться завершения вызова.
Так что я'Мне интересно, можно ли охарактеризовать ситуации, когда (доказуемо) безопасно звонитьstop()
в теме. Например, было бы безопасноstop()
поток, который ничего не делал, кроме вызоваfind(...)
или жеmatch(...)
на ?java.util.regex.Matcher
(Если бы кто-нибудь из инженеров Sun читал это ... был бы очень признателен за окончательный ответ.)
РЕДАКТИРОВАТЬ: Ответы, которые просто повторяют мантру, которую не следует называтьstop()
потому что это устарело, небезопасно, что быупустить смысл этого вопроса. Я знаю, что в большинстве случаев это действительно небезопасно, и если есть жизнеспособная альтернатива, вы всегда должны использовать ее вместо этого.
Этот вопрос о подмножестве случаев, когда это безопасно. В частности,какие это подмножество?