У меня есть агент-ориентированная модель, которую мне нужно обновлять каждые t
миллисекунд.На каждом этапе обновления все объекты агента должны быть уведомлены и выполнить некоторый код.Я хочу, чтобы каждый шаг длился t
или до тех пор, пока не завершится последний шаг, что бы ни было дольше.
Как я могу это сделать?Я пытаюсь использовать Timer.schedule, но, похоже, он не ждет, потому что я получаю исключение ConcurrentModificationException.
public void startClock(long delay) {
Timer timer = new Timer("clock", true);
TimerTask clockTask = new TimerTask() {
@Override
public void run() {
World.INSTANCE.update(); //this updates all agents
step++;
for (Timed task : listeners) {
task.run();
}
}
};
timer.schedule(clockTask, delay, interval); //miliseconds
}
public void startClock() {
startClock(interval);
}