zoukankan      html  css  js  c++  java
  • 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()即可。


     

     

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

     

     

  • 相关阅读:
    Android面向切面编程(AOP)(转)
    Android性能优化
    Android 性能分析之TraceView使用(应用耗时分析)
    Lint检查选项
    Android Chromium WebView Crash
    Could not get unknown property 'assembleRelease' for project ':app' of type org.gradle.api.Project.
    Android studio gradle 无法获取 pom文件
    android 7.0 因为file://引起的FileUriExposedException异常
    Android双系统实现
    git 安装 和 基本操作
  • 原文地址:https://www.cnblogs.com/lilinzhiyu/p/8074003.html
Copyright © 2011-2022 走看看