java多线程编程核心技术——第七章补漏拾遗
本章主要知识点:
1)线程组的使用
2)如何切换线程状态
3)SimpleDateFormat类与多线程的解决方法
4)如何处理线程异常。
这本书基本来到了终点,其实在第四章来说,核心(基础)的线程知识就已经结束了。
剩下的是一些关于线程方面的应用与场景:比如定时器以及多线程中的单例问题。
而这一章要面对的是一些其他的问题。
7.1线程的状态
线程对象在不同的运行时期有不同的状态,状态信息就存在于State枚举类中。
这一节,主要是结合前面学过的内容,将这个图看懂。
7.2线程组
7.2.1线程对象关联线程组:1级关联
主要就是父对象中有子对象但并不创建孙对象。也就是说只存在一个线程组,且这个线程组下有多个线程。
7.2.2线程对象关联线程组:多级关联
多级关联:父对象中有子对象,子对象中有子对象。
7.2.3线程组自动归属特性
自动归属就是自动归到当前线程组中
7.2.4获取根线程组
7.2.5线程组里加线程组
7.2.6组内线程批量停止
7.3使线程更具有有序性
使多个线程使用同一个锁来实现。
7.4SimpleDateFormat非线程安全
由于SimpleDateFormat是非线程安全的,所以在多线程中容易出现问题。
解决方法1:创建多个SimpleDateFormat实例(这里要建议使用一个工具类什么的,在每一次调用其中的方法时都能够创建新对象)。
解决方法2:使用ThreadLocal类,将SimpleDateFormat绑定到其对应的线程上,使每一个线程都有其本身的SimpleDateFormat对象。
7.5线程中异常处理
直接使用匿名内部类格式重写UncaughtExceptionHandler()即可。
本文内容是书中内容兼具自己的个人看法所成。可能在个人看法上会有诸多问题(毕竟知识量有限,导致认知也有限),如果读者觉得有问题请大胆提出,我们可以相互交流、相互学习,欢迎你们的到来,心成意足,等待您的评价。