1. ホーム
  2. java

[解決済み】 java.lang.IllegalThreadStateException

2022-02-22 01:51:09

質問

スレッドで作業しています。しかし、スレッドを開始しようとすると、Exceptionが発生します。具体的にはjava.lang.IllegalThreadStateExceptionが発生します。私のコードは次のとおりです。

public void readCommand() {
    readThread = new Thread("Thread for reading") {
        public void run() {
            while (running) {
                readBuffer = usbservice.receiveData();
                put(readBuffer);
            }
        }
    };
    readThread.start();
}

何が問題なのでしょうか?

解決方法は?

フィールドにスレッドを保存している。メソッドが 2 つのスレッドで呼び出された場合は readThread.start() は同じスレッドに対して2回呼び出される可能性があります。 readCommandが複数回呼ばれないようにする必要があります。また、readThreadがすでに実行されている場合は、再び起動しないようにする必要があります。