对于一个Thread类对象,能够多次调用start()方法来启动多个线程吗?
public class NewState {
public static void main(String[] args) {
Thread tt = new test(); //创建一个新线程
//启动线程
tt.start();
tt.start();
tt.start();
}
}
class test extends Thread { //继承线程的类
public void run() { //实现run()方法
System.out.println("测试start方法");
}
}
代码解析
在上述代码中,线程对象tt调用了多次start()方法,这是不被允许的。因为线程从new状态到runable状态是单行道,如果对已经处于runable状态(调用start()方法后)的线程再次调用start()方法,就会产生“java.lang.IllegalThreadStateException”异常。