Что делают задачи, отправленные в ScheduledExecutorService во время «ожидания» запуска - PullRequest
0 голосов
/ 04 июля 2018

Если у меня есть что-то вроде этого

scheduledExecutorService.schedule(task,60, TimeUnit.SECONDS);

Что происходит с «заданием», пока эти 60 секунд еще не истекли. Это потребляет ресурсы? Следовательно, следующий вопрос и мой конкретный вариант использования: что, если у меня есть много «задач», которые можно запланировать, будет ли это эффективно использовать память / ресурсы? Мои задачи недолговечны, но я обеспокоен последствиями планирования сотен задач для scheduleExecutorService.

1 Ответ

0 голосов
/ 04 июля 2018

Что происходит с «заданием», пока эти 60 секунд еще не истекли. Это потребляет ресурсы?

Он ожидает в PriorityQueue, так что да, он использует некоторые ресурсы.

Следовательно, следующий вопрос и мой конкретный вариант использования: что, если у меня много «задач», которые можно запланировать, будет ли это эффективно использовать память / ресурсы?

Не намного хуже, чем хранить их в очереди.

Мои задачи недолговечны, но я обеспокоен последствиями планирования сотен задач для scheduleExecutorService.

Скажем, каждая задача использует 1 КБ, вы будете тратить 100 КБ. Вряд ли будет проблемой.

Скажем, каждая задача использует 1 ГБ, тогда у вас может быть проблема. Я предлагаю вам сделать это по-другому.

...