Javaでスレッドのを実行すると、例外がスローされます

ベンジャミン・バネルジー:

私はゲームを作成しようとしていますし、私のスレッドを実行するために、私が選択した道で奇妙な問題に遭遇してきました

私はそれがセットアップされている方法は、各関連クラスが持っているということであるThreadのオブジェクト、run()関数は一度コードを実行します。それぞれは、フレームごとに一度と呼ばれています。

しかし、いつでも私は私が手のコードを実行しようjava.lang.IllegalThreadStateExceptionと、私はなぜ見当もつかない。

ここで問題のあるコードの適応です:

public class Test { 

    public static void main(String[] args) {

        while(true) {

            ThreadA.run(args);
            ThreadB.run(args);

        }

    }

    private static class ThreadA {

        private static Thread thread = new Thread() {

            @Override
            public void run() {

                System.out.println("A");

            }

        };

        public static void run(String[] args) {

            thread.start();

        }

    }
    private static class ThreadB {

        private static Thread thread = new Thread() {

            @Override
            public void run() {

                System.out.println("B");

            }

        };

        public static void run(String[] args) {

            thread.start();

        }

    }

}
ドラッグトークン:

問題はここにあります:

while(true) {
  ThreadA.run(args);
  ThreadB.run(args);
}

無限にこれがループ。それが完了した場合であっても-複数回のスレッドを開始するために法的なことはありません。thread.isAlive()ここであなたを助けにはなりません-あなたは再びそれを実行したい場合は、新しいインスタンスを作成します。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=32789&siteId=1