При реализации решений двух проблем (конечного автомата и генетического программирования) я сталкиваюсь с одной и той же проблемой, которая действительно позволяет отменить выполнение метода. Принимая конечный автомат в качестве примера, у меня естьJava: борьба с управлением по вызову метода
public class FiniteStateMachine {
public class runState(State state) {
state.run();
}
}
Я не имею контроль над State
, все, что я могу сделать, это вызвать метод run
. Иногда state
может быть плохо себя вести, например, они могут занимать слишком много времени или слишком много байткодов. Я хочу остановить их, т. Е. Отменить прогон. Как я могу это сделать, не имея возможности изменить State, только FiniteStateMachine и с одним потоковым кодом.
Взгляните на [Будущее] (http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/Future.html). Но для этого потребуется несколько потоков. –
Невозможно сделать это без использования нескольких потоков. – Ralf
@ElliottFrisch: Это не поможет. – SLaks