重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

java线程生命周期-创新互联

java线程生命周期
  • java线程生命周期
    • 1、线程的生命周期介绍
    • 2、线程状态切换详解

成都创新互联电话联系:18982081108,为您提供成都网站建设网页设计及定制高端网站建设服务,成都创新互联网页制作领域10多年,包括成都PE包装袋等多个方面拥有多年的网站营销经验,选择成都创新互联,为网站锦上添花。java线程生命周期 1、线程的生命周期介绍
  • New状态:java程序通过New创建了Thread对象,跟普通的对象没有什么区别,想要进一步变为可运行状态时必须使用Thread的start方法
  • Runnable状态:可运行状态,只有在该状态下的线程才算是真正在jvm中创建了进程,但仅仅也只是这样,在此状态下的线程并没有实际上的运行,只有在获取到cpu的调度执行时候才可实际运行
  • Running状态:运行状态,只有CPU当前通过轮询或者一些方式在线程Runnable队列中选择了进程才可进入该状态,在此状态下才可真正的执行具体的逻辑代码
  • Blocked状态:阻塞状态,线程由于某种原因放弃cpu的使用使用权,暂停运行
  • Terminated状态:终止状态
2、线程状态切换详解

在这里插入图片描述

  1. NEW->RUNNABLE:通过NEW新建的Thread对象只有通过调用start()方法才算是真正在jvm中创建了线程,也就变为了RUNNABLE状态
  2. RUNNABLE->RUNNING:在RUNNABLE状态的进程只有得到CPU的调度使用权的时候才会转变为RUNNING状态
  3. RUNNING->RUNNABLE:在RUNNING状态的线程有两种情况会重新回到RUNNABLE状态,一种为线程调用yield方法主动为相同优先级或者更高优先级的线程放弃自己运行的机会,还有一种为被动放弃,由于CPU的轮询使得该线程被动放弃执行权
  4. RUNNABLE->BLOCKED:RUNNING状态实际上也算是RUNNABLE的线程,RUNNABLE状态还有可能会进入BLOCKED阻塞状态,主要有以下几种情况
    • 线程调用了suspend(已过期)、sleep或者wait方法
    • 线程需要进行某个阻塞的IO操作
    • 获取某个锁资源,加入到了某个锁资源的阻塞队列中而进入BLOCKED状态
  5. BLOACKED->RUNNABLE:处于BLOCKED状态的线程会因为某些操作重新进入RUNNABLE状态
    • 调用resume(已过期)方法
    • 线程阻塞的操作结束,比如IO操作已经结束,拿到了想要的东西进入到RUNNABLE状态
    • 线程完成了指定的休眠时间
    • wait的线程被其他的线程使用notify/notifyAll唤醒
    • 线程获取到了需要的锁资源
    • 其他线程调用了interrupt方法,表明他有可能会中断
  6. RUNNABLE->TERMINATED:正在运行中的(RUNNABLE)状态下的线程有三种方式会进入到TERMINATED状态,一种为程序正常运行结束则会进入TERMINATED状态,该状态为线程的最终状态;还有一种方式为线程调用了stop方法(已过期) ;最后一种为JVM崩溃,所有线程都结束掉了
  7. BLOCKED->TERMINATED:阻塞的进程使用stop方法也会进入TERMINATED状态

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


网页名称:java线程生命周期-创新互联
当前链接:http://cqcxhl.com/article/dggdod.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP