• 34.线程的生命周期【20220812】


    1、线程的生命周期就是线程从一开始创建,到run方法执行完毕以后的状态变化。[状态之间的切换]
    2、线程的生命周期几种状态【1、新建状态 2、就绪状态 3、运行状态  4.阻塞状态 5.死亡状态】

    线程的生命周期描述
    1.新建状态:通过new的方式创建出线程对象,此时线程就进入到创建状态【新建状态】。
               新建状态的线程是不能运行。
               新建状态的线程调用start方法,进入就绪状态

    2.就绪状态:线程具备运行能力,只差操作系统【CPU】分配给他运行时间片【万事具备,只欠时间片】
               得到操作系统【CPU】分配给他运行时间片,此时开始执行run方法,进入运行状态。

    3.运行状态:线程运行run方法。
            回到就绪状态:
            1.操作系统【CPU】分配给他运行时间片使用完毕,回到就绪状态。

            进入阻塞状态
            1.运行状态的线程执行了sleep方法,进入阻塞状态。
            2.运行状态的线程执行了wait方法,进入阻塞状态。
            3.运行状态的线程执行输入/输出动作,进入阻塞状态。
            ......

            进入死亡状态
            1.运行状态的线程run方法执行完毕,进入死亡状态。
            2.运行状态的线程调用stop()/destroy() ,进入死亡状态。

    4.阻塞状态:线程暂停运行
            回到运行状态
            阻塞状态中的线程,结束了造成阻塞的原因,此时线程进入就绪状态,得到操作系统【CPU】分配给他运行时间片就可以进入运行状态。

            运行状态进入阻塞状态原因:
            1.运行状态的线程执行了sleep方法,进入阻塞状态,休眠时间结束/interrupt,进入就绪状态
            2.运行状态的线程执行了wait方法,进入阻塞状态,调用notify/notifyAll,进入就绪状态
            3.运行状态的线程执行输入/输出动作,进入阻塞状态,输入/输出结束,进入就绪状态        

    5.死亡状态:线程运行结束,释放运行资源。
            死亡状态的线程是不能运行,除非再一次使用strat方法重新启动运行。

  • 相关阅读:
    第2章 进程管理
    杀掉redis进程 并启动redis
    串口通信及串口转蓝牙相关知识
    使用同步和异步方式更新插入MongoDB数据的性能对比
    Win7开启触摸键盘方法
    电商项目常用的五个设计模式场景及分析实现
    二叉排序树的查找(递归、非递归)
    【ARM Coresight 系列文章 3.3 - ARM Coresight JTAG 详细介绍】
    Java设计模式8,校验、审批流程改善神器,责任链模式
    微信小程序插件--wxml-to-canvas(生成图片)
  • 原文地址:https://blog.csdn.net/guizhaiteng/article/details/126308226