У меня возникла концептуальная проблема в понимании работы fixedthreadpool службы исполнителя.
Предположим, что у меня есть фиксированный поток потоков из n потоков, и я отправляю несколько задач этой службе. Теперь, если рабочий доступен, он выполняет поставленную задачу, а другие отправленные задачи ждут в очереди до тех пор, пока работник не станет свободным.
Мой вопрос: когда мы рассматриваем рабочего как свободный рабочий поток?
Считаем ли рабочий поток свободным, как только он отправляет задание независимо от завершения задачи, или мы рассматриваем рабочий поток занятым, пока выполняется заданная задача.
Предположим, что у нас есть рабочий поток W1 в пуле, а задача Op1 отправлена исполнителю.
W1 запускает Op1 в момент T1, и через некоторое время Op1 завершил свое исполнение в момент T3. Здесь T3> T1
Теперь мы считаем W1 свободным, как только он запускает Op1 в момент времени T1, или считается занятым и будет свободным в момент T3.Когда мы рассматриваем рабочий поток как бесплатный в Executor Service
Спасибо заранее!
«Рассматриваем ли рабочий поток бесплатно, как только он начинает представлять задание», почему мы так определяем его? – didierc
Рабочий поток считается «свободным», когда он способен выполнять работу (т. Е. В настоящее время не выполняет задачу). – isnot2bad
Все рабочие нитки рождаются бесплатно! ;-) – haraldK