Surveillance des threads Java, redémarrage des threads, problèmes de mode observateur
天蓬老师
天蓬老师 2017-05-27 17:41:04
0
2
774

J'ai entendu parler du problème du redémarrage de la surveillance des threads
http://www.cnblogs.com/ae6623...
Le mode observateur introduit dans cet article, je pense qu'il place le code clé pour redémarrer le thread dans le corps du thread. dois-je faire s'il y a une exception non interceptée dans le bloc catch ? Je ne connais pas grand chose à la classe Exception. Toutes les exceptions peuvent-elles être interceptées ? Si tel est le cas, y aura-t-il des raisons de mort de thread manquées qui ne pourront pas être surveillées ?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

répondre à tous(2)
漂亮男人

Exception est la classe parent de toutes les classes d'exceptions, catch(Exception) peut intercepter toutes les exceptionsException是所有异常类的父类, catch(Exception)能捕获到所有的异常

通常异常又分为ExceptionRuntimeException

  • Exception必须捕获, 发生异常时, 会执行catch中的业务

  • RuntimeException, 发生异常时, 如果不捕获会中断当前线程, 如果捕获和Exception一样

通常线程退出(死亡)的条件

  • 线程业务执行完毕

  • 线程发生未捕获的RuntimeException

你给的文章中重启线程的本质是让上一个线程A已经结束了(break), 调用Observable#notifyObservers()重新启动了一个线程A1,也就是说如果没有调用Observable#notifyObservers()的话, 是不会重启线程的.

所以, 如果在调用Observable#notifyObservers()之前发生了RuntimeException

Habituellement, les exceptions sont divisées en Exception et RuntimeException🎜
  • 🎜Exception doit être interceptée Lorsqu'une exception se produit, l'activité dans catch sera exécutée🎜
  • .
  • 🎜RuntimeException, lorsqu'une exception se produit, si elle n'est pas interceptée, le thread actuel sera interrompu. S'il est intercepté, c'est la même chose que Exception🎜li>
🎜Conditions générales de sortie du fil (décès)🎜
  • 🎜Exécution commerciale du fil de discussion terminée🎜
  • 🎜Une RuntimeException🎜
  • non interceptée s'est produite dans le fil de discussion
🎜L'essence du redémarrage du fil de discussion dans l'article que vous avez donné est de laisser le fil de discussion précédent A se terminer (break) et d'appeler Observable#notifyObservers() code> Un thread A1 a été redémarré, ce qui signifie que si Observable#notifyObservers() n'est pas appelé, le thread ne sera pas redémarré.🎜 🎜Donc, si une RuntimeException se produit avant d'appeler Observable#notifyObservers() et qu'elle n'est pas interceptée, le thread ne sera pas redémarré.🎜
Ty80

Généralement, l'emplacement où l'exception de thread observée se produit peut être déterminé, l'exception est interceptée à l'emplacement déterminé et le thread est redémarré. La méthode de traitement de la connexion en question est réalisable.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal