2013-09-07 2 views
0

Возможно ли запланировать несколько TimerTasks, чтобы все они начинались в одно и то же время, и если да, то как бы я это сделал? В частности, я хотел бы инициировать эти задачи в одно и то же время, чтобы относительная разница во времени между каждой задачей была такой, как указано (я хочу быть максимально точным).Запуск нескольких java TimerTasks в то же время

toneIntervalClock.scheduleAtFixedRate(tonePlayerTask, 250, 5000); 
startRecordingClock.scheduleAtFixedRate(startRecordingTask,0,5000); 
stopRecordingClock.scheduleAtFixedRate(stopRecordingTask, 1000, 5000); 

Также было бы лучше использовать один и тот же таймер Util для планирования каждой задачи? Thanks

ответ

0

Система будет пытаться сделать огонь scheduleAtFixedRate с низким джиттером, но вы никогда не получите никаких гарантий с параллелизмом.

Ваш подход к инициализации всех задач, а затем их запуск является достойным. Единственное, что я хотел бы сделать, это использовать Timer#scheduleAtFixedRate(TimerTask task, Date firstTime, long period), так как тогда у вас нет дрожания между вашими звонками schedule и вы можете запустить их все с фиксированной ссылки времени.

+0

спасибо. Я понял, что со временем будет дрейф; Я просто хотел убедиться, что они начнутся в одно и то же время. Знаете ли вы, было бы лучше (точнее) планировать каждую задачу с использованием тех же часов или это не имеет значения? – HXSP1947

+0

* При исполнении с фиксированной ставкой каждое исполнение запланировано относительно запланированного времени выполнения первоначального выполнения. Если исполнение задерживается по какой-либо причине (например, сбор мусора или другая фоновая активность), два или более исполнения будут выполняться в быстрой последовательности, чтобы «догнать». * – chrylis

+0

Исправить. Мне просто интересно, не повлияет ли использование разных тактовых переменных (например, toneIntervalClock, startRecordingClock, stopRecordingClock). Моя интуиция - нет, так как я использую исполнение с фиксированной ставкой, но я хотел убедиться. – HXSP1947

Смежные вопросы