Простой ответ: вы можете остановить поток INTERNALLY одним из двух общих способов:
Вы также можете остановить потоки EXTERNALLY:
system.exit
(это убивает весь ваш процесс) interrupt()
объекта объекта * kill()
или stop()
) * : Ожидается, что предполагается остановить поток. Однако, что поток фактически делает, когда это происходит, полностью зависит от того, что написал разработчик, когда они создали реализацию потока.
Общим шаблоном, который вы видите с реализацией метода выполнения, является while(boolean){}
, где логическое обычно называется с именем isRunning
, это переменная-член класса своего потока, она является изменчивой и обычно доступна другим потокам методом сортировки, например, kill() { isRunnable=false; }
. Эти подпрограммы хороши, потому что они позволяют потоку освобождать любые ресурсы, которые он проводит до завершения.