线程的生命周期和状态

参考:《Java 并发编程的艺术》

  • 执行main方法时包含的线程
    • Signal Dispatcher : 分发处理发送给JVM信号的线程
    • Finalizer:调用对象finalize 方法的线程
    • Reference Handler : 清除Reference 的线程
    • main : main线程,用户程序的入口
  • 为何要使用多线程
    • 更多的处理器核心
    • 更快的响应时间
    • 更好的编程模型
  • 优先级高的线程分配的时间片数量要多于优先级低的线程。

java线程在运行的生命周期中的指定时刻只可能处于下面6种不同的状态的其中一种状态。

image-20210311155722647

image-20210311170544478

注:阻塞状态时线程阻塞在进入synchronized关键字修饰的方法或者代码块是的状态,但是阻塞在java.concurrent包中的lock接口的线程是再等待状态的。因为lock

Daemon线程:一种支持型线程,因为它主要被用作程序中后台调用以及支持型工作。当一个java虚拟机中不存在非Daemon线程的时候,java虚拟机将会退出。

  • 父线程与子线程

在构造线程时 ,创建线程的当前线程就是新线程的父线程,新线程的一些资源来自于这个父线程,即借助丧气那正在运行的父线程,对新创建的线程进行一些必要的赋值和初始化。

posted @ 2021-03-11 17:08  Jayzou11223  阅读(62)  评论(0编辑  收藏  举报