4

在 Java 中,我得到了这个异常:

Exception in thread "main" java.lang.IllegalThreadStateException
    at java.lang.Thread.start(Unknown Source)
    at Threads4.go(Threads4.java:14)
    at Threads4.main(Threads4.java:4)

这是代码:

public class Threads4 {
    public static void main(String[] args){
        new Threads4().go();
    }
    void go(){
        Runnable r = new Runnable(){
            public void run(){
                System.out.println("foo");
            }
        };
        Thread t = new Thread(r);
        t.start();
        t.start();

    }
}

异常是什么意思?

4

6 回答 6

5

你试图启动线程两次。

于 2013-02-15T18:34:07.557 回答
1

您不能两次启动线程。

于 2013-02-15T18:34:30.130 回答
0

你不能启动你的线程两次,

t.start();
t.start();

你正试图开始一些已经开始的事情,所以你得到IllegalThreadStateException

于 2013-02-15T18:34:38.317 回答
0

您不能两次启动同一个线程。

创建另一个线程,例如

Thread thread2 = new Thread(r);
thread2.start();
于 2013-02-15T18:34:50.177 回答
0

您应该只启动一次线程。只有当线程完成运行时,您才能再次启动线程。

下面的代码不会抛出任何异常:

t.start();
if(!t.isAlive()){
   t.start();
 }
于 2013-02-15T18:37:23.173 回答
0

一旦我们启动了一个线程,我们就不允许重新启动同一个线程,否则我们将
在您的代码中得到 IllegalThreadStateException 只需删除该行

 Thread t = new Thread(r);
        t.start();
        t.start(); // Remove this line
于 2017-01-20T23:07:28.497 回答