Thread isAlive () возвращает false [duplicate]

Все методы устранения пробелов для display:inline-block - неприятные хаки ...

Использовать Flexbox

Это потрясающе, решает весь этот встроенный блок макет bs, а с 2017 года поддержка браузера 98% (больше, если вам не нравятся старые IE).

16
задан Maroun 25 June 2013 в 10:48
поделиться

7 ответов

Согласно Javadoc, вы упомянули:

Нить жива, если она была запущена и еще не умерла.

Поток запускается «когда его метод start() вызывается и« умирает »в конце своего метода run() или когда вызывается stop() (теперь устаревший). Итак, да, поток «живой», когда его метод run() все еще продолжается, но он также «жив» в окне времени между вызовом start() и неявным вызовом метода run() JVM .

Вы также можете проверить интересные Thread.getState() и информацию о потоках , предложенную @Marou Maroun.

I я также следую его предложению, предупреждая вас, что нить может закончиться преждевременно в случае выброса исключения, которое распространяется за пределы run.

EDIT: Как было предложено @zakkak, поток можно считать живым, даже если метод run() еще не запущен. Если вы хотите иметь правильное управление при вызове, используйте ScheduledExecutorService , в частности метод schedule() , который дает вам более точное расписание выполнения.

23
ответ дан ΦXocę 웃 Пepeúpa ツ 1 September 2018 в 02:03
поделиться

Нить оживает после возвращения start () и до тех пор, пока run () не вернется в JVM.

1
ответ дан Evgeniy Dorofeev 1 September 2018 в 02:03
поделиться

Нить жива, когда она находится в состоянии New или в состоянии Running / Wait. И мы также можем сказать, что до тех пор, пока поток не будет умер, он будет сохранен в памяти.

0
ответ дан Manish Doshi 1 September 2018 в 02:03
поделиться

Thread is «Alive» означает, что Thread все еще работает.

Да, вы можете сказать, что метод run() выполняется для Живого потока.

Кроме того, isAlive ( ) используется, чтобы узнать, продолжает ли поток.

final boolean isAlive()

Метод isAlive() возвращает значение true, если поток, по которому он вызывается, все еще запущен. В противном случае он возвращает false.

0
ответ дан Matthieu 1 September 2018 в 02:03
поделиться

Поток считается живым с момента создания объекта Thread и запуска его до тех пор, пока он не завершит метод запуска или не умрет. Говорят, что он находится в живом состоянии, даже если он находится в режиме ожидания, запуска или сна.

0
ответ дан nevets1219 1 September 2018 в 02:03
поделиться

Нить жива, когда на него вызывается метод start и до его смерти. Он может переместиться в состояние ожидания до того, как он будет мертв, даже если он находится в состоянии ожидания, он все еще жив.

От того, чтобы быть мертвым, он может перейти из состояния runnable в waiting.

1
ответ дан Prasad Kharkar 1 September 2018 в 02:03
поделиться

Нить жива, когда она находится в новом состоянии / Running / wait. По существу, может быть запущен метод run или нет

2
ответ дан sidshu 1 September 2018 в 02:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: