Maison  >  Questions et réponses  >  le corps du texte

Surveillance des threads Java, redémarrage des threads, problèmes de mode observateur

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 ?

天蓬老师天蓬老师2702 Il y a quelques jours738

répondre à tous(2)je répondrai

  • 漂亮男人

    漂亮男人2017-05-27 17:43:04

    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🎜
    🎜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() 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é.🎜

    répondre
    0
  • PHP中文网

    PHP中文网2017-05-27 17:43:04

    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.

    répondre
    0
  • Annulerrépondre