關於線程監控重啟的問題我看了
http://www.cnblogs.com/ae6623...
這篇文章介紹的觀察者模式我看他是把重啟線程的關鍵程式碼放到了線程體中的catch塊中哪如果是沒有捕獲到的異常怎麼辦額我異常不太了解那個Exception 類是所有異常都能捕獲到麼,如果這樣的話還會不會有遺漏的線程死亡原因不能監控到呢
漂亮男人2017-05-27 17:43:04
Exception
是所有异常类的父类, catch(Exception)
能捕捉到所有的異常
通常異常又分為Exception
和RuntimeException
Exception
必须捕获, 发生异常时, 会执行catch
中的業務
RuntimeException
, 发生异常时, 如果不捕获会中断当前线程, 如果捕获和Exception
一樣
通常線程退出(死亡)的條件
線程業務執行完畢
執行緒發生未捕獲的RuntimeException
你給的文章中重啟線程的本質是讓上一個線程A
已经结束了(break
), 调用Observable#notifyObservers()
重新启动了一个线程A1
,也就是说如果没有调用Observable#notifyObservers()
的話, 是不會重啟線程的.
所以, 如果在呼叫Observable#notifyObservers()
之前發生了Observable#notifyObservers()
之前发生了RuntimeException
, 而且未捕獲的話, 線程也就不會重啟了.