У меня есть Java-программа, которая требует очень много времени для компиляции.IllegalThreadStateException on Thread.interrupt
Для целей тестирования я хочу убить программу и перезапустить ее, если сборка длится долго.
Вот упрощенная версия моего кода:
public class Main {
public static void main(String[] args) {
Thread foo = new Thread(new Foo());
while (true) {
foo.start();
while (true) {
if (needRestart()) {
foo.interrupt();
break;
}
}
}
}
}
foo.java выглядит как это:
public class Foo implements Runnable {
// some code
public void run() {
try {
while (!Thread.currentThread().isInterrupted()) {
// some code
}
} catch(InterruptedException ex) {
Thread.currentThread().interrupt();
}
}
}
Проблема в том, что программа падает и генерирует IllegalThreadStateException
Если вам нужен полный код, вот он: full code
Требуется много времени для компиляции или запуска? – ACV
@ACV это займет много времени, чтобы скомпилировать, я запускаю это на EV3 – mrCyborg
Каждый раз, когда у вас есть исключение, вы должны включить всю свою трассировку стека в свой вопрос. – VGR