Задача Таймера Java, как гарантируют, не будет работать одновременно?

А также предлагаемые решения, мне нравится делать вещи абзац за один раз с >}

5
задан Cœur 2 August 2017 в 17:16
поделиться

3 ответа

Из Javadoc

Каждому объекту Timer соответствует один фоновый поток, который используется для последовательного выполнения всех задач таймера. Задачи таймера должны выполняться быстро. Если для выполнения задачи таймера требуется слишком много времени, она «перегружает» поток выполнения задачи таймера. Это, в свою очередь, может задержать выполнение последующих задач, которые могут «группироваться» и выполняться в быстрой последовательности, когда (и если) проблемная задача, наконец, завершится.

Итак, да, вы получаете новый поток (отдельный от потока вызывающего). Каждая задача в этом таймере использует один и тот же поток.

8
ответ дан 13 December 2019 в 22:12
поделиться

На каждый таймер приходится один поток, поэтому ответ на ваш вопрос - да

2
ответ дан 13 December 2019 в 22:12
поделиться

В самом деле. Все они выполняются в одном фоновом потоке, который последовательно соответствует объекту Timer. НО два разных экземпляра Timer будут работать (я полагаю) в разных потоках, поэтому вам нужно сохранить ссылку на объект таймера, чтобы планировать больше задач последовательно.

0
ответ дан 13 December 2019 в 22:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: