码界工坊

htykm.cn
人生若只如初见

关于线程五个阶段生命周期介绍

  线程周期大致分为新建、就绪、运行、阻塞、销毁等五个阶段,本文将从这几个阶段详细介绍下,希望能够帮助到你~

  1、新建(new)

  新建:使用new方法,new出来线程,此时仅仅由JAVA虚拟机为其分配内存,并初始化成员变量的值。此时仅仅是个对象。

  2、就绪(runnable)

  就绪:就是调用的线程的start()方法后,这时候线程处于等待CPU分配资源阶段,谁先抢的CPU资源,谁开始执行;

  该线程进入就绪状态,JAVA虚拟机会为其创建方法调用栈和程序计数器。线程的执行是由底层平台控制, 具有一定的随机性。

  3、运行(running)

  运行:当就绪的线程被调度并获得CPU资源时,便进入运行状态,run方法定义了线程的操作和功能;为了线程切换后能恢复到正确的执行位置,每条线程都有一个独立的程序计数器,各条线程之间计数器互不影响,独立存储。

  4、阻塞(blocked)

  阻塞:在运行状态的时候,可能因为某些原因导致运行状态的线程变成了阻塞状态。

  5、销毁(terminated)

  如果线程正常执行完毕后或线程被提前强制性的终止或出现异常导致结束,那么线程就要被销毁,释放资源。

  1、run()/call()方法执行完成,线程正常结束;

  2、线程抛出一个未捕获的Exception或Error;

  3、直接调用线程的stop()方法结束该线程——该方法容易导致死锁,通常不建议使用。

  以上就是关于线程五个阶段生命周期介绍的相关内容。

未经允许不得转载 » 本文链接:http://htykm.cn/html/795a4399161.html

推荐文章

  • Node.js在CentOS上的内存如何优化

    在CentOS上优化Node.js应用的内存使用是一个多方面的任务,涉及到代码优化、使用高效的数据结构、合理使用缓存、监控内存使用情况等多个方面。以下是一些具体的优化策略:代码优化减少阻塞代码:避免在 ...

  • Debian Golang日志如何进行错误追踪

    在Debian系统上使用Golang进行日志记录和错误追踪,可以借助一些强大的日志库和工具。以下是一些常见的方法和步骤:1. 选择合适的日志库Golang生态系统中有多个流行的日志库,如 log标准库 ...

  • CentOS Tomcat性能优化技巧有哪些

    在CentOS上优化Tomcat性能涉及多个方面,包括硬件资源、操作系统配置、Tomcat自身参数调整等。以下是一些具体的优化建议:硬件与操作系统层面优化使用性能良好的硬件:如高速CPU、大内存和高速 ...

  • centos cmatrix服务管理

    CMatrix 是一个在命令行终端中显示字符动画效果的程序,常用于在演示或等待长时间运行的任务完成时提供视觉效果。在 CentOS 系统上安装和管理 CMatrix 的步骤如下:安装步骤安装依赖包:s ...

  • GIMP在Linux上如何导出图片

    在Linux系统上使用GIMP导出图片的步骤如下:打开GIMP:首先,打开GIMP应用程序。打开图片:点击菜单栏中的“文件”File),然后选择“打开”Open),浏览并选择你想要导出的图片文件。编辑 ...

  • cmatrix有哪些安全设置

    CMatrix 是一个在终端中运行的字符矩阵,通常用于展示类似于《黑客帝国》中的代码雨效果。它本身并不是一个专门的安全工具,但用户在使用时可以通过一些配置来提高其安全性或安全性相关的设置。以下是一些可 ...

  • Linux系统中Swagger部署流程是怎样的

    在Linux系统中部署Swagger现称为OpenAPI Specification)通常涉及以下几个步骤:1. 安装Java环境Swagger需要Java运行环境JRE)或Java开发工具包JDK) ...

  • 如何在CentOS上打包Golang项目

    在CentOS上打包Golang项目,你可以遵循以下步骤:确保已经安装了Go语言环境。如果没有,请访问Go官方网站下载并安装适用于CentOS的Go版本。在项目根目录下创建一个名为main.go的文件 ...