Java多线程-----Thread类的基本用法,线程的状态及其转化 ✧*(ˊᗜˋ*) ✧*
warning:
这篇文章距离上次修改已过193天,其中的内容可能已经有所变动。
public class ThreadStatesExample {
public static void main(String[] args) throws InterruptedException {
Thread t1 = new Thread(new MyRunnable());
System.out.println("新建线程: " + t1);
System.out.println("线程状态: " + t1.getState()); // 新建状态
// 启动线程
t1.start();
System.out.println("线程启动后状态: " + t1.getState()); // 可运行或运行中
// 让主线程等待一段时间
Thread.sleep(100);
// 判断线程是否存活
if (t1.isAlive()) {
System.out.println("线程 t1 存活,状态: " + t1.getState()); // 可能是运行中或阻塞
}
// 让主线程等待线程t1运行结束
t1.join();
System.out.println("线程运行结束: " + t1.getState()); // 终止状态
}
static class MyRunnable implements Runnable {
@Override
public void run() {
System.out.println("线程正在运行...");
}
}
}
这段代码创建了一个新的线程t1
,并展示了如何检查线程的状态。它首先获取线程的初始状态,然后启动线程,并在启动后获取状态。接着,它使用Thread.sleep
来等待一段时间,并使用isAlive
和getState
方法检查线程是否存活以及它的状态。最后,使用join
方法等待线程t1
运行结束,并在线程结束后打印状态。
评论已关闭