代码如下:
class ThreadTest{
public static void main(String [] args){
ThreadDaemon td=new ThreadDaemon();
td.start();
try{
Thread.sleep(1000);
}catch(Exception e){}
td.stop();
td.start();
}
}
class ThreadDaemon extends Thread{
public void run(){
for(int i=0;i<5;i++)
System.out.println(i);
}
}
执行之后如下提示:
0
1
2
3
4
Exception in thread "main" java.lang.IllegalThreadStateException
        at java.lang.Thread.start(Unknown Source)
        at ThreadTest.main(ThreadTest.java:9)
一个线程停止之后就不能再调用start()了吗?要怎么样才可以实现这个功能?

解决方案 »

  1.   

    线程一旦死了之后就不能再start了
    你得重新创建一个实例。
    这样就可以解决你的问题了。
      

  2.   

    你可以使用
    public boolean isInterrupted()
    进行判断,它只是一个中断标记。
    当你把它改成true时,可能继续执行
      

  3.   

    查了一下doc stop已经不建议使用了,容易造成死锁。
    看样子你是想让进程停一段时间,然后你要唤醒它,你可以试试用wait() 和notify()来实现。