Exception in thread "main" java.lang.IllegalThreadStateException
同一个Thread不能重复调用start方法。
一旦线程启动,它就永远不能再重新启动。只有一个新的线程可以被启动,并且只能一次。一个可运行的线程或死线程可以被重新启动。
案例一:
public static void main(String[] args) {
Test test= new Test();
test.start();
test.start();
案例二:
public static void main(String[] args) {
Test test= new Test();
test.start();
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
test.start();
}
以上两种案例搜会报错:Exception in thread "main" java.lang.IllegalThreadStateException
下面举一个正确的案例:
public static void main(String[] args) {
//声明一个Thread类型的List集合
List<Thread> thread = new ArrayList<>();
Test test = new Test();
for (int i = 0; i < 5; i++) {
//每次new一个新的线程Thread,将对象test放进去 此处有5个线程
thread.add(new Thread(test,"thread"+i));
}
for (int i = 0; i < 5; i++) {
thread.get(i).start();
}
}
同一个线程