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()即可。

本文内容是书中内容兼具自己的个人看法所成。可能在个人看法上会有诸多问题(毕竟知识量有限,导致认知也有限),如果读者觉得有问题请大胆提出,我们可以相互交流、相互学习,欢迎你们的到来,心成意足,等待您的评价。

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏老马说编程

(25) 异常 (下) / 计算机程序的思维逻辑

上节我们介绍了异常的基本概念和异常类,本节我们进一步介绍对异常的处理,我们先来看Java语言对异常处理的支持,然后探讨在实际中到底应该如何处理异常。 异常处理...

1836
来自专栏技术专栏

慕课网高并发实战(五)- 安全发布对象

不正确的发布可变对象导致的两种错误: 1.发布线程意外的所有线程都可以看到被发布对象的过期的值 2.线程看到的被发布对象的引用是最新的,然而被发布对象的状态...

872
来自专栏Java帮帮-微信公众号-技术文章全总结

Java基础-03(02).总结运算符、键盘录入、if语句

(3)案例: A:比较两个数是否相等 B:获取两个数中的最大值 C:获取三个数中的最大值(if语句的嵌套) D:根据成绩输出对应的等级 E:根据月份...

3757
来自专栏前端架构

闲话闭包

如果让谷哥找一下“闭包”这个词,会发现网上关于闭包的文章已经不计其数 维基百科上对闭包的解释就很经典:

821
来自专栏Java Web

Java 面试知识点解析(一)——基础知识篇

2055
来自专栏程序员互动联盟

【答疑释惑】C++异常处理是咋回事?

疑惑一 C++的异常处理 一、什么是异常处理 一句话:异常处理就是处理程序中的错误。 二、为什么需要异常处理,以及异常处理的基本思想 C++ 之父Bjarne ...

3115
来自专栏面朝大海春暖花开

入住腾讯云+社区

对于的github基础代码https://github.com/chywx/JavaSE

321
来自专栏闵开慧

Java盲点解析

1 堆栈区别     Java的堆是一个运行时数据区,类的(对象从中分配空间。这些对象通过new、newarray、anewarray和multianewarr...

3136
来自专栏Python专栏

10个Python面试常问的问题

1344
来自专栏java一日一条

Java中摆脱equals,compareTo和toString

我们都曾在POJO中重写过equals(),compareTo()和toString()方法。但是另有其他能做到职责分离的更好的方法并带来更简洁的代码。阅读这篇...

582

扫码关注云+社区