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