Поведение Java ScheduledExecutorService.scheduleAtFixedRate ()

У меня есть вопрос относительно метода 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?

7
задан informatik01 28 October 2013 в 00:52
поделиться