网站首页 > 精选教程 正文
1、线程状态关系
2、线程的状态分析
线程的五种状态:创建-就绪-运行-阻塞-死亡
1.创建状态
创建线程对象之后,尚未调用其start方法之前;
2.可运行状态:就绪和运行
1)当调用start()方法启动线程之后,如果cup没有给当前线程分配资源,当前线程就是就绪状态;
2)一旦获到cpu分配的资源,就进入运行状态;
3.运行状态:线程获得cpu资源,开始运行;
4.阻塞状态
一个正在运行的线程因某种原因不能继续运行时,进度阻塞状态。阻塞状态一种“不可运行”的状态,而处于这种状态的线程在得到一个特定的事件之后会转回可运行的状态;
5.死亡状态
一个线程的run()方法执行完毕,stop()方法被调用或在运行过程中出现未捕捉的异常时,线程进入死亡状态,线程就不可以再次执行;
3、案例
案例
public class MyThreadState implements Runnable{
@Override
public void run() {
System.out.println("---3 运行状态---");
//线程休眠,单位是毫秒
try {
System.out.println("---4.1 进入阻塞--");
Thread.sleep(2000);
System.out.println("---4.2 恢复运行状态---");
} catch (InterruptedException e) {
e.printStackTrace();
System.out.println("---5.1死亡状态---");
}
System.out.println("---5.2 死亡状态---");
}
public static void main(String[] args) {
//线程的状态演示
MyThreadState myThreadState = new MyThreadState();
Thread thread = new Thread(myThreadState);
System.out.println("---1 创建状态---");
thread.start();
System.out.println("---2 就绪状态---");
}
}
运行结果
---1 创建状态---
---2 就绪状态---
---3 运行状态---
---4.1 进入阻塞--
---4.2 恢复运行状态---
---5.2 死亡状态---
- 上一篇: 2021Java基础面试题:线程有哪些基本状态?
- 下一篇: Java线程的概念,各种状态以及使用方式
猜你喜欢
- 2024-11-18 Java并发编程线程状态转换
- 2024-11-18 Java面试必考问题:线程的生命周期
- 2024-11-18 Java 19 虚拟线程的状态变化,停驻与锁定
- 2024-11-18 Java线程生命周期详解?
- 2024-11-18 线程从创建最终消亡,要经历的若干状态,你了解其中的多少?
- 2024-11-18 java线程状态之WAITING(等待)
- 2024-11-18 浅谈Java线程:线程基础知识扫盲
- 2024-11-18 Java线程在各个状态下调用start方法会发生什么事情?
- 2024-11-18 为什么Java中线程没有Running状态
- 2024-11-18 阻塞模型将会使线程休眠,为什么 Java 线程状态却是 RUNNABLE?
你 发表评论:
欢迎- 04-11Java面试“字符串三兄弟”String、StringBuilder、StringBuffer
- 04-11Java中你知道几种从字符串中找指定的字符的数量
- 04-11探秘Java面试中问的最多的String、StringBuffer、StringBuilder
- 04-11Python字符串详解与示例(python字符串的常见操作)
- 04-11java正则-取出指定字符串之间的内容
- 04-11String s1 = new String("abc");这句话创建了几个字符串对象?
- 04-11java判断字符串中是否包含某个字符
- 04-11关于java开发中正确的发牌逻辑编写规范
- 最近发表
-
- Java面试“字符串三兄弟”String、StringBuilder、StringBuffer
- Java中你知道几种从字符串中找指定的字符的数量
- 探秘Java面试中问的最多的String、StringBuffer、StringBuilder
- Python字符串详解与示例(python字符串的常见操作)
- java正则-取出指定字符串之间的内容
- String s1 = new String("abc");这句话创建了几个字符串对象?
- java判断字符串中是否包含某个字符
- 关于java开发中正确的发牌逻辑编写规范
- windows、linux如何后台运行jar(并且显示进程名)
- 腾讯大佬私人收藏,GitHub上最受欢迎的100个JAVA库,值得学习
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)