我是Core Java的初学者,我现在正在研究多线程。我有一个与此代码相关的疑问:
import java.io.*;
public class MyThread extends Thread
{
public void run()
{
for(int i=0;i<10;i++)
{
try
{
Thread.sleep(500);
}
catch(InterruptedException e)
{
System.out.println(e);
}
System.out.println(i);
}
}
public static void main(String args[])
{
MyThread mt=new MyThread();
MyThread mt1=new MyThread();
mt.start();
mt.start();
}
}
上面的代码编译,但是我在运行时遇到了非法的状态异常。这是什么原因?
答案 0 :(得分:2)
您开始第一次Thread
mt
两次,而不是开始mt1
。
一旦开始运行,如果您再次尝试Thread
,IllegalStateException
会抛出start
。