多线程上下文中的IllegalStateException

时间:2014-08-09 18:38:30

标签: java multithreading exception exception-handling illegalstateexception

我正在学习核心java并学习了多线程IllegalStateException

我已经阅读了standard documentationthis question on SO ...但是在线程的上下文中找不到合适的解决方案。

用书中的话来说:

  当你开始两次线程时,会抛出

IllegalStateException

我无法理解它所说的内容......即使没有给出任何例子......

当它出现在线程的上下文中?谁能举个例子?

2 个答案:

答案 0 :(得分:1)

是的,如果线程的start方法已经启动,则无法调用该方法。

  

public void start()

     

使该线程开始执行; Java虚拟机调用   这个线程的run方法。

     

结果是两个线程同时运行:当前   thread(从调用start方法返回)和另一个   线程(执行其run方法)。

     

多次启动线程永远不合法。特别是,a   一旦完成执行,线程可能无法重新启动。

     

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

     

参见:      run(),stop()

Source

答案 1 :(得分:1)

   public static void main(String[] args) {
      Thread t = new Thread();
      t.start();
      t.start();
   }

产地:

Exception in thread "main" java.lang.IllegalThreadStateException    at
java.lang.Thread.start(Thread.java:682)     at
quicktest.CopyOnWrite.main(CopyOnWrite.java:23)
Java Result: 1