java 線程監控 重啟線程 觀察者模式的問題的問題
天蓬老师
天蓬老师 2017-05-27 17:41:04
0
2
751

關於線程監控重啟的問題我看了
http://www.cnblogs.com/ae6623...
這篇文章介紹的觀察者模式我看他是把重啟線程的關鍵程式碼放到了線程體中的catch塊中哪如果是沒有捕獲到的異常怎麼辦額我異常不太了解那個Exception 類是所有異常都能捕獲到麼,如果這樣的話還會不會有遺漏的線程死亡原因不能監控到呢

天蓬老师
天蓬老师

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

全部回覆(2)
漂亮男人

Exception是所有异常类的父类, catch(Exception)能捕捉到所有的異常

通常異常又分為ExceptionRuntimeException

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

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

通常線程退出(死亡)的條件

  • 線程業務執行完畢

  • 執行緒發生未捕獲的RuntimeException

你給的文章中重啟線程的本質是讓上一個線程A已经结束了(break), 调用Observable#notifyObservers()重新启动了一个线程A1,也就是说如果没有调用Observable#notifyObservers()的話, 是不會重啟線程的.

所以, 如果在呼叫Observable#notifyObservers()之前發生了Observable#notifyObservers()之前发生了RuntimeException, 而且未捕獲的話, 線程也就不會重啟了.

Ty80

一般情況下被觀察的線程異常發生位置可以確定,在確定的位置捕捉​​異常並重啟線程。題主連結的處理方法是可行的。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!