Как правильно остановить поток в Java?

Middle
335 просмотров
AFK Offer AI

Thread.stop() deprecated — он убивает поток без очистки, может оставить объекты в broken state. Правильный способ: флаг volatile boolean running + проверка в цикле, или Thread.interrupt() + проверка isInterrupted()/Thread.interrupted(). Блокирующие операции (sleep, wait, take) бросают InterruptedException при interrupt() — поймай и заверши работу. Не глотай InterruptedException — либо обработай, либо восстанови флаг Thread.currentThread().interrupt(). Это cooperative cancellation — поток сам решает, когда остановиться.

Следующий вопрос

Как работает @Transactional в Spring — ключевые атрибуты?