关于线程监控 重启的问题我看了
http://www.cnblogs.com/ae6623...
这篇文章介绍的观察者模式 我看他是把重启线程的关键代码放到了线程体中的catch块中 哪如果是没有捕获到的异常怎么办 额 我异常不太了解 那个Exception 类是所有异常都能捕获到么 ,如果这样的话 还会不会有遗漏的线程死亡原因不能监控到呢
关于线程监控 重启的问题我看了
http://www.cnblogs.com/ae6623...
这篇文章介绍的观察者模式 我看他是把重启线程的关键代码放到了线程体中的catch块中 哪如果是没有捕获到的异常怎么办 额 我异常不太了解 那个Exception 类是所有异常都能捕获到么 ,如果这样的话 还会不会有遗漏的线程死亡原因不能监控到呢
15 回答8.2k 阅读
8 回答6k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.2k 阅读
2 回答3.9k 阅读
1 回答2.2k 阅读✓ 已解决
Exception
是所有异常类的父类,catch(Exception)
能捕获到所有的异常通常异常又分为
Exception
和RuntimeException
Exception
必须捕获, 发生异常时, 会执行catch
中的业务RuntimeException
, 发生异常时, 如果不捕获会中断当前线程, 如果捕获和Exception
一样通常线程退出(死亡)的条件
线程业务执行完毕
线程发生未捕获的
RuntimeException
你给的文章中重启线程的本质是让上一个线程
A
已经结束了(break
), 调用Observable#notifyObservers()
重新启动了一个线程A1
,也就是说如果没有调用Observable#notifyObservers()
的话, 是不会重启线程的.所以, 如果在调用
Observable#notifyObservers()
之前发生了RuntimeException
, 而且未捕获的话, 线程也就不会重启了.