Nach dem Javadoc Sie erwähnen:
Ein Thread am Leben ist, wenn es gestartet wurde und noch nicht gestorben.
Ein Thread „beginnt“, wenn seine start()
Methode aufgerufen wird und „stirbt“ am Ende seines run()
Methode oder wenn stop()
(nun veraltet) aufgerufen wird. Also ja, ein Thread ist "am Leben", wenn seine run()
Methode noch läuft, aber es ist auch "lebendig" in dem Zeitfenster zwischen dem Aufruf von start()
und dem impliziten Aufruf der run()
Methode durch die JVM.
Sie können auch die von @ Marou Maroun vorgeschlagenen Thread.getState()
und interesting information about Thread States überprüfen.
Ich folge auch seinem Vorschlag, der Sie warnt, dass ein Thread vorzeitig enden kann, falls eine Ausnahme ausgelöst wird, die sich über run
hinaus ausbreitet. Der Thread wäre in diesem Fall nicht mehr am Leben.
BEARBEITEN: Wie von @ Zakkak vorgeschlagen, kann der Thread als lebendig betrachtet werden, obwohl die Methode run()
noch nicht gestartet wurde. Wenn Sie eine ordnungsgemäße Kontrolle darüber haben wollen, wann es aufgerufen wird, verwenden Sie die , speziell die schedule()
Methode, die Ihnen einen präziseren Ausführungsplan gibt.
Die Antwort ist da: "* Ein Thread lebt, wenn er gestartet wurde und noch nicht gestorben ist. *". Dieser Link sollte Ihnen auch helfen: http://journals.ecs.soton.ac.uk/java/tutorial/java/threads/states.html – Maroun
Danke für dieses Diagramm. Es war sehr hilfreich. –