多线程(二)-线程的状态

海哥  金牌会员 | 2022-6-23 14:29:06 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 900|帖子 900|积分 2700

大佬的理解->Jaca多线程(一)多线程基础
1、线程状态关系


2、线程的状态分析

线程的五种状态:创建-就绪-运行-阻塞-死亡
1.创建状态
创建线程对象之后,尚未调用其start方法之前;
2.可运行状态:就绪和运行
1)当调用start()方法启动线程之后,如果cup没有给当前线程分配资源,当前线程就是就绪状态;
2)一旦获到cpu分配的资源,就进入运行状态;
3.运行状态:线程获得cpu资源,开始运行;
4.阻塞状态
一个正在运行的线程因某种原因不能继续运行时,进度阻塞状态。阻塞状态一种“不可运行”的状态,而处于这种状态的线程在得到一个特定的事件之后会转回可运行的状态;
5.死亡状态
一个线程的run()方法执行完毕,stop()方法被调用或在运行过程中出现未捕捉的异常时,线程进入死亡状态,线程就不可以再次执行;
3、案例

案例
  1. public class MyThreadState implements Runnable{
  2.     @Override
  3.     public void run() {
  4.         System.out.println("---3 运行状态---");
  5.         //线程休眠,单位是毫秒
  6.         try {
  7.             System.out.println("---4.1 进入阻塞--");
  8.             Thread.sleep(2000);
  9.             System.out.println("---4.2 恢复运行状态---");
  10.         } catch (InterruptedException e) {
  11.             e.printStackTrace();
  12.             System.out.println("---5.1死亡状态---");
  13.         }
  14.         System.out.println("---5.2 死亡状态---");
  15.     }
  16.     public static void main(String[] args) {
  17.         //线程的状态演示
  18.         MyThreadState myThreadState = new MyThreadState();
  19.         Thread thread = new Thread(myThreadState);
  20.         System.out.println("---1 创建状态---");
  21.         thread.start();
  22.         System.out.println("---2 就绪状态---");
  23.     }
  24. }
复制代码
运行结果
  1. ---1 创建状态---
  2. ---2 就绪状态---
  3. ---3 运行状态---
  4. ---4.1 进入阻塞--
  5. ---4.2 恢复运行状态---
  6. ---5.2 死亡状态---
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

海哥

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表