1、线程的状态介绍
线程有五个状态:创建状态、就绪状态、运行状态、阻塞状态、死亡状态。
创建状态:在实例化线程对象的时候,线程就进入了创建状态
就绪状态:线程对象调用start()方法后,线程就进入了就绪状态,这时线程进行抢占CPU资源,抢到后才会进入运行状态
运行状态:运行状态是在线程抢占到CPU资源后的状态,这个状态是在运行run()方法里的内容。
阻塞状态:阻塞状态就是在线程运行中进入了线程睡眠或者等待用户操作,这时线程释放CPU资源进入阻塞状态,等待阻塞解除后,线程再次进入线程就绪状态,得到CPU资源后才能再次进入运行状态。
死亡状态:死亡状态是线程正常结束或是通过外部终止线程后,线程才会进入死亡状态。
2、例子
模拟一个线程的状态:
线程类
package com.zwy1;
public class Mythread extends Thread{
public Mythread() {
super();
System.out.println("线程实力化成功,处于创建状态");
}
@Override
public void run() {
System.out.println("线程处于运行状态");
System.out.println("线程开始睡眠,进入阻塞状态");
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("线程结束睡眠,线程重新进入运行状态");
System.out.println("线程结束,处于死亡状态");
}
@Override
public synchronized void start() {
super.start();
System.out.println("线程处于就绪状态");
}
}
主程序:
package com.zwy1;
public class Demo {
public static void main(String[] args) {
Mythread mythread=new Mythread();
mythread.start();
}
}
运行结果: