国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

java 線程監控 重啟線程 觀察者模式的問題的問題

瀏覽:131日期:2023-11-17 13:52:47

問題描述

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

問題解答

回答1:

Exception是所有異常類的父類, catch(Exception)能捕獲到所有的異常

通常異常又分為Exception和RuntimeException

Exception必須捕獲, 發生異常時, 會執行catch中的業務

RuntimeException, 發生異常時, 如果不捕獲會中斷當前線程, 如果捕獲和Exception一樣

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

線程業務執行完畢

線程發生未捕獲的RuntimeException

你給的文章中重啟線程的本質是讓上一個線程A已經結束了(break), 調用Observable#notifyObservers()重新啟動了一個線程A1,也就是說如果沒有調用Observable#notifyObservers()的話, 是不會重啟線程的.

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

回答2:

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

標簽: java
相關文章:
主站蜘蛛池模板: 科技| 佛坪县| 怀化市| 葫芦岛市| 黄山市| 灯塔市| 大兴区| 大安市| 额尔古纳市| 孟津县| 新和县| 平安县| 莱西市| 敦化市| 察哈| 武城县| 思南县| 桃园县| 余干县| 宁波市| 舟山市| 阳山县| 绵阳市| 南木林县| 寿宁县| 兴隆县| 西畴县| 广东省| 五大连池市| 阿巴嘎旗| 秭归县| 克山县| 盐城市| 万安县| 石楼县| 阿巴嘎旗| 太和县| 芜湖市| 南靖县| 乌海市| 房产|