Comment arrêter un fil?
Lorsqu'un thread est en vie, comment puis-je arrêter le fil? J'ai donné comme
if(thread.isAlive()){
thread.stop();
}
mais la méthode d'arrêt est obsolète et est en train de lancer une exception
01-21 14:12:40.188: ERROR/global(535): Deprecated Thread methods are not supported.
01-21 14:12:40.188: ERROR/global(535): java.lang.UnsupportedOperationException
01-21 14:12:40.188: ERROR/global(535): at java.lang.VMThread.stop(VMThread.java:85)
01-21 14:12:40.188: ERROR/global(535): at java.lang.Thread.stop(Thread.java:1379)
01-21 14:12:40.188: ERROR/global(535): at java.lang.Thread.stop(Thread.java:1344)
Comment pouvons-nous résoudre ce problème?
source d'informationauteur jennifer
Vous devez vous connecter pour publier un commentaire.
En général, vous n'avez pas la force d'arrêter les threads parce que c'est dangereux. Vous définissez un drapeau qui indique que le thread en question pour sortir de la boucle de fil en conditions contrôlées.
Votre boucle de fil ressemble à quelque chose le long de ces lignes:
Et d'ailleurs vous définissez la
shouldContinue
variable et attendre le thread finition:(Tout cela n'est probablement pas correcte de Java, car je ne fais pas de Java. Voir cela comme une pseudo-code et de le modifier pour votre langue/thread library/etc.)
Voici ce que le Java, les gens ont à dire à propos de pourquoi ne pas appeler fil.arrêter et quoi faire à la place.
http://download.oracle.com/javase/1.5.0/docs/guide/misc/threadPrimitiveDeprecation.html
La réponse courte est, vous autorisez le thread fonction de point d'entrée pour le retour.
Mieux, vous devez utiliser cette méthode de thread,de l'arrêter.
De sorte que vous pouvez également enregistrer l'état de fil.
Non bouclage du fil de mise en oeuvre, vous pouvez toujours utiliser quelque chose comme cela, tout au début du code de thread: