Java子线程结束后,还能再运行吗
如果有面试官问道你,当一个子线程运行完之后它还可以再次运行吗?
首先我先告诉你答案
是不行的,他会抛出一个异常
java.lang.IllegalThreadStateException
@Test
public void test7(){
Thread t = new Thread("1"){
@Override
public void run() {
// super.run();
int i = 0;
System.out.println(Thread.currentThread().getName()+i++);
}
};
t.start();
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
t.start();
}
在Java中是不支持一个线程二次调用的,
如果有这个需求你可以实现Runnable接口将你的任务和线程解耦
这篇博客解释了Java中子线程一旦完成执行,就无法再次启动,会抛出IllegalThreadStateException异常,并通过代码实例演示了这一原理。同时提到了如何通过实现Runnable接口解决线程复用问题。
1100

被折叠的 条评论
为什么被折叠?



