计时器错误java.lang.IllegalThreadStateException

时间:2013-11-22 14:20:21

标签: java timer

错误消息为java.lang.IllegalThreadStateException(在timeOutControl.start()行)。可能是什么原因?

TimeOutControl timeOutControl = new TimeOutControl();

//...

timeOutControl.start();

  public class TimeOutControl extends Thread {

    public void run() 
    {
        long start = System.currentTimeMillis();

        while (CVRPTW.DO_IT) {
            if (System.currentTimeMillis() - start > CVRPTW.maxruntime) {
                CVRPTW.DO_IT = false;
                break;
            }

            try {
                sleep(10000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }

        }   

    }

}

1 个答案:

答案 0 :(得分:3)

Thread.start()的

The javadoc说:

  

抛出:      IllegalThreadStateException - 如果线程已经启动。

所以答案是你试图两次启动同一个线程。如果必须这样做,则每次要启动时都构造一个新的TimeOutControl实例。