一个线程的生命周期结束,就无法再被启动
程序员文章站
2022-04-15 23:20:51
示例代码:public static void main(String[] args) throws InterruptedException { Thread thread = new Thread(() -> { try { TimeUnit.SECONDS.sleep(2); } catch (InterruptedException e) { e.printStackTrace(); }...
示例代码:
public static void main(String[] args) throws InterruptedException {
Thread thread = new Thread(() -> {
try {
TimeUnit.SECONDS.sleep(2);
} catch (InterruptedException e) {
e.printStackTrace();
}
});
System.out.println("线程状态---" + thread.getState());
thread.start();
System.out.println("线程状态---" + thread.getState());
TimeUnit.SECONDS.sleep(3);
System.out.println("3秒后线程状态---" + thread.getState());
thread.start();
}
运行效果:
报以上异常的原因在于start()方法源码中的这个判断:
只有新建的线程才能调用start()方法,而没有什么方法能够让一个线程生命周期状态重新变为0,所以如果一个线程的生命周期结束了,就无法再被启动。
本文地址:https://blog.csdn.net/weixin_38106322/article/details/107357907