并发编程之线程管理

并发编程之线程管理

线程的未捕获异常与监控

  • 如果线程的run方法抛出异常未被铺货(Uncaught Exception),那么随着run方法的退出,相应的线程也会提前终止。对于线程的这种异常终止,我们如何得知并做出可能的补救动作,例如重新创建并启动一个替代线程。
  • Jdk中使用UncaughtExceptionHandler接口实现了对线程的异常信息的监控和处理
    • 其中有一个uncaughtException(Thread a, Throwable e)方法,在这里我们可以将线程抛出的异常信息记录到日志中,或者开启一个替代线程继续提供服务

实例

12345678910111213141516171819202122232425262728293031323334353637383940

public class ThreadTest { public static void main(String[] args) { ErrHandler handle = null; ThreadA a = null; a = new ThreadA(); //创建线程对象 handle = new ErrHandler(); //创建UncaughtExceptionHandler a.setUncaughtExceptionHandler((UncaughtExceptionHandler) handle); a.start(); //启动 } } /** * 自定义的一个UncaughtExceptionHandler */class ErrHandler implements UncaughtExceptionHandler { /** * 这里可以做任何针对异常的处理,比如记录日志等等 * @param a : 抛出异常的线程对象 * @param e : 抛出的异常信息,可以获取异常信息 */ public void uncaughtException(Thread a, Throwable e) { //做一些日志管理 System.out.println("This is:" + a.getName() + ",Message:" + e.getMessage()); //开启一个另外的线程提供服务 System.out.println("现在执行另外一个替代线程提供服务......"); }} /** * 拥有UncaughtExceptionHandler的线程 */class ThreadA extends Thread { public void run() { double i = 12 / 0;// 抛出异常的地方 }}

线程工厂

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大内老A

在ASP.NET Core应用中如何设置和获取与执行环境相关的信息?

HostingEnvironment是承载应用当前执行环境的描述,它是对所有实现了IHostingEnvironment接口的所有类型以及对应对象的统称。如下面...

7398
来自专栏向治洪

android应用资源预编译,编译和打包全解析

我们知道,在一个APK文件中,除了有代码文件之外,还有很多资源文件。这些资源文件是通过Android资源打包工具aapt(Android Asset P...

60410
来自专栏Java技术分享

Redis实现信息已读未读状态提示

假如现在有2个模块需要提示消息:只要存在用户在上个时间点之后没有看过的信息就提示用户有新的信息

49210
来自专栏小灰灰

Java并发学习之CountDownLatch实现原理及使用姿势

CountDownLatch实现原理及使用姿势 在并发编程的场景中,最常见的一个case是某个任务的执行,需要等到多个线程都执行完毕之后才可以进行,Count...

5.6K10
来自专栏移动端周边技术扩展

关于CocoaAsyncSocket中的tag值问题

831
来自专栏java工会

反射在微信公众平台开发中的应用

1364
来自专栏黑泽君的专栏

用户登录注册案例(集合版)

2642
来自专栏开源优测

[接口测试 - 基础篇] 09 其实吧,读写csv格式也是要掌握的

什么是csv格式 逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表...

3115
来自专栏hbbliyong

WebAPI返回数据类型解惑 以及怎样解决Extjs无法解析返回的xml

 最近开始使用WebAPI,上手很容易,然后有些疑惑   1.WebAPI默认返回什么数据类型,json还是xml?   2.怎么修改WebAPI的返回数据类型...

3228
来自专栏用户2442861的专栏

Makefile 使用总结

http://www.cnblogs.com/wang_yb/p/3990952.html

1043

扫码关注云+社区

领取腾讯云代金券