Согласно Javadoc, вы упомянули:
Нить жива, если она была запущена и еще не умерла.
blockquote>Поток запускается «когда его метод
start()
вызывается и« умирает »в конце своего методаrun()
или когда вызываетсяstop()
(теперь устаревший). Итак, да, поток «живой», когда его методrun()
все еще продолжается, но он также «жив» в окне времени между вызовомstart()
и неявным вызовом методаrun()
JVM .Вы также можете проверить интересные
Thread.getState()
и информацию о потоках , предложенную @Marou Maroun.I я также следую его предложению, предупреждая вас, что нить может закончиться преждевременно в случае выброса исключения, которое распространяется за пределы
run
.EDIT: Как было предложено @zakkak, поток можно считать живым, даже если метод
run()
еще не запущен. Если вы хотите иметь правильное управление при вызове, используйтеScheduledExecutorService
, в частности методschedule()
, который дает вам более точное расписание выполнения.