java常用多线程知识大全(二)

五. 线程组:JAVA中ThreadGroup表示线程组,可以在创建Thread时在构造函数中指定线程组,不指定默认为父线程的线程组。线程组提供activeCount()、interrupt()、isDaemon、setDaemon()等方法可以操作线程组中所有线程。
六. 线程异常特殊处理机制:可以通过Thread的static setDefaultUncaughtExceptionHandler(Thread.UncaughtExceptionHandler eh)或者setUncaughtExceptionHandler(Thread.UncaughtExceptionHandler eh)设置异常处理器,线程组ThreadGroup实现了Thread.UncaughtExceptionHandler接口,故将作为默认的异常处理器。注意这里的异常处理跟catch不同,这里的handler处理完异常后会自动传递给上级调用者。
七. 线程池:线程池在启动时创建大陆空闲线程,可提交Runnable或者Callable对象给线程池执行,执行完毕后线程不死亡而变成空闲线程。线程池用于减少创建和销毁线程的开销。线程池执行任务步骤如下:
1. 调用Executors类静态工厂方法创建ExecutorService对象,代表线程池;
2. 创建Runnable或者Callable类实例,通过ExecutorServicede的Submit方法提交,返回Future对象,如果提交的是Runnable,则Future返回null。
3. 调用ExecutorService的shutdown()可以关闭线程池.
八. ThreadLocal类:表示Thread Local Variable,即线程局部变量的意思,提供T get();void remove();void set(T value)三个方法,ThreadLocal对象只有一个,但每个线程都有副本,相互不影响。
九. 集合:1. Collections提供静态方法(synchronized开头)可以将非线程安全集合包装成线程安全集合。2. Concurrent开头的集合类是线程安全的集合。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值