97 votes

En Java, comment déterminer si un thread est en cours d'exécution ?

Comment déterminer si un fil est en cours d'exécution ?

99voto

Wayne Points 1668

Thread.isAlive()

34voto

asattar Points 2457

Vous pouvez utiliser cette méthode :

boolean isAlive()

Il renvoie vrai si le fil est toujours vivant et faux si le fil est mort. Ce n'est pas statique. Vous avez besoin d'une référence à l'objet de la classe Thread.

Un autre conseil : Si vous vérifiez qu'il est possible de faire attendre le thread principal pendant que le nouveau thread est toujours en cours d'exécution, vous pouvez utiliser la méthode join(). C'est plus pratique.

21voto

Je pense que vous pouvez utiliser [GetState()](http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Thread.html#getState()) ; Il peut renvoyer l'état exact d'un thread.

9voto

Vérifiez l'état du fil en appelant Thread.isAlive .

8voto

sxnamit Points 281

Pour être précis,

Thread.isAlive() renvoie true si le thread a été démarré (peut ne pas être encore en cours d'exécution) mais n'a pas encore terminé sa méthode d'exécution.

Thread.getState() renvoie l'état exact du fil.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X