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接口将你的任务和线程解耦