У меня есть вопрос относительно метода scheduleAtFixedRate () в ScheduledExecutorService в Java 6.
[ править : Javadoc для 1.6 более полный, чем для 1.5. См. Комментарий ниже]
Учитывая, что:
- ScheduledExecutorService создается с N = 1 потоком в пуле
- фиксированная скорость составляет период T секунд
- без начальной задержки
Что происходит в в этом случае (времена не должны быть абсолютными в смысле реального времени):
- в момент T, служба запускает Runnable задачу, «task1»
- во время 2T, task1 еще не завершена, и служба запланирована на запуск
Гарантированно ли служба выполняет какие-либо из следующих действий?
- (a) в 2T, запускает Runnable задачу, «task2» (вспомним N = 1)
- (b) блок, пока задача 1 не будет завершена
- (c) пропустить этот раз и повторить попытку на 3T
- (d) поведение не определено
Или что-то еще? Изменится ли ответ, если N> 1?
задан informatik01 28 October 2013 в 00:52
поделиться