当前位置: 首页 > news >正文

10.Java线程的状态

Java中线程的状态

Thread类中有一个枚举类,定义了线程的状态

  1. NEW:只是创建了一个java线程对象,还没有start ;
  2. RUNNABLE:处于可运行状态的线程正在Java虚拟机中执行,但它可能正在等待来自操作系统的其他资源,如CPU;
  3. BLOCKED:线程尝试获得锁,但是锁已经被其他线程拥有了,当前线程就会进入阻塞状态 ;
  4. WAITING: 处于永久等待状态。
    • 线程调用以下某个方法进入这种状态:
      • Object.wait()
      • thread.join()
      • LockSupport.park
    • 此时线程正在等待另一个线程执行特定操作。例如:
      • 调用对象的Object.wait()方法的线程正在等待另一个线程对该对象调用Object.notify()或Object.notifyAll()
      • 调用Thread.join()的线程正在等待指定的线程终止。
  5. TIMED_WAITING:有时限的等待。
    • 线程调用以下某个方法进入这种状态:
      • Thread.sleep(timeout)
      • Object.wait(timeout)
      • thread.join(timeout)
      • LockSupport.parkNanos
      • LockSupport.parkUntil
  6. TERMINATED:线程已完成执行。

示例

public class StateDemo {public static void main(String[] args) throws InterruptedException {Thread t1 = new Thread(() -> {}, "t1");Thread t2 = new Thread(() -> {while (true) {}}, "t2");t2.start();Thread t3 = new Thread(() -> {log.debug("running...");}, "t3");t3.start();Thread t4 = new Thread(() -> {synchronized (StateDemo.class) {try {Thread.sleep(100000);} catch (InterruptedException e) {e.printStackTrace();}}}, "t4");t4.start();Thread t5 = new Thread(() -> {try {t2.join();} catch (InterruptedException e) {e.printStackTrace();}}, "t5");t5.start();Thread t6 = new Thread(() -> {synchronized (StateDemo.class) {log.debug("");}}, "t6");t6.start();Thread.sleep(500);log.debug("t1:" + t1.getState());log.debug("t2:" + t2.getState());log.debug("t3:" + t3.getState());log.debug("t4:" + t4.getState());log.debug("t5:" + t5.getState());log.debug("t6:" + t6.getState());System.exit(1);}
}

输出:

2025-10-04 11:40:51.581 [t3] c.StateDemo - running...
2025-10-04 11:40:52.087 [main] c.StateDemo - t1:NEW
2025-10-04 11:40:52.087 [main] c.StateDemo - t2:RUNNABLE
2025-10-04 11:40:52.087 [main] c.StateDemo - t3:TERMINATED
2025-10-04 11:40:52.087 [main] c.StateDemo - t4:TIMED_WAITING
2025-10-04 11:40:52.087 [main] c.StateDemo - t5:WAITING
2025-10-04 11:40:52.087 [main] c.StateDemo - t6:BLOCKED
http://www.dtcms.com/a/443023.html

相关文章:

  • Codeforces Round 1054 B. Unconventional Pairs(2149)
  • 如何做公众号微信杭州百度seo优化
  • 个人网站备案号可以做企业网站吗成都门户网站有哪些
  • 深圳网站建设力荐上榜网络做网站需要具备什么
  • 帝国cms网站迁移做网站杭州
  • 在线建站模板熊掌号wordpress
  • 网站可以自己建立吗黄石网站建设
  • 做网站购买服务器网站集约化平台
  • 做图片视频的网站免费域名注册 ddns
  • leetcode 36 有效的数独
  • 使用hhblits进行序列比对
  • 网站域名过期杭州网站建设哪家公司好
  • 桂林北站是哪个区wordpress 免费企业网站 模板下载
  • 逻辑门可以实现数学运算,逻辑思维与数学思维谁更基本
  • [光学原理与应用-484]:《中安DF-300S技术规格书》
  • 做的比较好的卡车网站威县做网站哪儿好
  • 安阳网站建设哪家正规温州建设小学网站首页
  • 如何做律师网站响应式网站模板html5
  • 永嘉网站建设域名年费价格表
  • 网站开发的功能需求怎么写学院网站建设管理规章制度
  • 响应式网站好处公司网站建设情况说明
  • Java 21 发行说明总结
  • 北京社保网上服务平台官网trinseo公司
  • 俄文网站制作要制作网站
  • 龙岗网站建设定制开发整合营销传播的效果表现为
  • 资兴市住房和城乡建设局网站网页制作素材动物
  • 网站经营方案 备案网站建设都需要哪些材料
  • 开网站是干什么的沈阳企业免费建站
  • 盐城网站设计公司网站如何推广运营
  • 做消防哪些网站找工作免费咨询医生回答在线