Ниже представлена модель ситуации. На самом деле в методе класса А много циклов, иногда все отрабатывают нормально, а иногда происходит зацикливание, в каком из циклов - не предугадать.
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("Программа работала слишком долго.");
        }
    }
}
Метод класса А изменять не желательно. Существует ли возможность прервать выполнение программы из класса В?