Ниже представлена модель ситуации. На самом деле в методе класса А много циклов, иногда все отрабатывают нормально, а иногда происходит зацикливание, в каком из циклов - не предугадать.
Метод класса А изменять не желательно. Существует ли возможность прервать выполнение программы из класса В?
public class A {
public static int someMethod(){
int result = 0;
//some code...
while (true){
}
//some code...
return result;
}
}
И есть класс В, которому нужен результат работы класса А, точнее его метода. Хотелось бы, чтобы при зацикливании выводилась надпись в консоль и завершалось выполнение программы, для этого, создан поток SomeThread...
public class B {
public static void main(String[] args) {
B b = new B();
b.method();
}
void method(){
//some code...
SomeThread thread = new SomeThread();
thread.start();
int digit = A.method(); //Тут происходит зацикливание
thread.interrupt();
//some code...
}
class SomeThread extends Thread{
@Override
public void run() {
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
return;
}
System.out.println("Программа работала слишком долго.");
}
}
}
