我正在学习核心java并学习了多线程IllegalStateException
。
我已经阅读了standard documentation和this question on SO ...但是在线程的上下文中找不到合适的解决方案。
用书中的话来说:
当你开始两次线程时,会抛出
IllegalStateException
。
我无法理解它所说的内容......即使没有给出任何例子......
当它出现在线程的上下文中?谁能举个例子?
答案 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