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

多线程的几种状态

Java-多线程的几种状态

  • 🔎1.NEW( 系统中线程还未创建,只是有个Thread对象)
  • 🔎2.RUNNABLE( (就绪状态. 又可以分成正在工作中和即将开始工作)
  • 🔎3.TERMINATED(系统中的线程已经执行完了,Thread对象还在)
  • 🔎4.TIMED_WAITING(指定时间等待,调用Thread.sleep()方法)
  • 🔎5.BLOCKED(线程阻塞状态)
  • 🔎6.WAITING(使用wait方法出现的状态)
  • 🔎结尾

多线程的状态

  • NEW( 系统中线程还未创建,只是有个Thread对象)
  • RUNNABLE(就绪状态. 又可以分成正在工作中和即将开始工作)
  • TERMINATED(系统中的线程已经执行完了,Thread对象还在)
  • TIMED_WAITING(指定时间等待,调用Thread.sleep()方法)
  • BLOCKED(线程阻塞状态)
  • WAITING(使用wait方法出现的状态)

🔎1.NEW( 系统中线程还未创建,只是有个Thread对象)

public class Test {public static void main(String[] args) {Thread t = new Thread(() -> {});//线程启动之前获取线程状态 --> 只是有个Thread对象System.out.println(t.getState());t.start();}
}

🔎2.RUNNABLE( (就绪状态. 又可以分成正在工作中和即将开始工作)

public class Test {public static void main(String[] args) {Thread t = new Thread(() -> {while(true) {try {Thread.sleep(500);} catch (InterruptedException e) {e.printStackTrace();}}});t.start();//线程就绪状态System.out.println(t.getState());}
}

🔎3.TERMINATED(系统中的线程已经执行完了,Thread对象还在)

public class Test {public static void main(String[] args) {Thread t = new Thread(() -> {});t.start();try {Thread.sleep(500);} catch (InterruptedException e) {e.printStackTrace();}//线程TERMINATED状态System.out.println(t.getState());}

🔎4.TIMED_WAITING(指定时间等待,调用Thread.sleep()方法)

public class Test {public static void main(String[] args) {Thread t = new Thread(() -> {while(true) {try {Thread.sleep(500);} catch (InterruptedException e) {e.printStackTrace();}}});t.start();try {Thread.sleep(3000);} catch (InterruptedException e) {e.printStackTrace();}//线程TIMED_WAITING状态System.out.println(t.getState());}
}

🔎5.BLOCKED(线程阻塞状态)

阻塞状态值得是代码不继续执行,而在等待
阻塞结束后,线程重新进入就绪状态
影响阻塞的方法

  • sleep()
  • wait()
  • join()
  • yield()

🔎6.WAITING(使用wait方法出现的状态)

线程调用 wait() 方法之后,就会变为 WAITING状态


🔎结尾

如果大家有什么不太理解的,可以私信或者评论区留言,一起加油

http://www.lryc.cn/news/43931.html

相关文章:

  • 【算法题】1574. 删除最短的子数组使剩余数组有序
  • 理解对数——金融问题中的自然对数(以e为底的对数)
  • vue2进阶学习之路
  • 决策树ID3算法
  • C++模板基础(一)
  • 生产者消费者模型线程池(纯代码)
  • K8s 应用的网络可观测性: Cilium VS DeepFlow
  • 3.29面试题
  • 操作系统漏洞发现
  • Linux gdb调试底层原理
  • LC-1647. 字符频次唯一的最小删除次数(哈希+计数)
  • HTTP状态码
  • 【Linux】初见“which命令”,“find命令”以及linux执行命令优先级
  • update case when 多字段,多条件, mysql中case when用法
  • mysql隐式转换 “undefined“字符串匹配到mysql int类型0值字段
  • Redis八股文
  • InnoDB——详细解释锁的应用,一致性读,自增长与外键
  • C++模板基础(四)
  • pycharm使用记录
  • Linux命令·kill·killall
  • Linux /proc/version 文件解析
  • 【Django 网页Web开发】15. 实战项目:管理员增删改查,md5密码和密码重置(08)(保姆级图文)
  • STL容器之<array>
  • flask教程6:cookie和session
  • 【JavaEE初阶】第六节.网络原理TCP/IP协议
  • 模式识别 —— 第六章 支持向量机(SVM)与核(Kernel)
  • 总结 synchronized
  • 360周鸿祎又“开炮”:GPT 6-8就将产生自主意识!我们来测算一下对错
  • python——飞机大战小游戏
  • 数组(完全二叉树)向下建堆法与堆排序O(N*logN)