У меня проблема с пониманием идеи пула потоков.
Простой пул потоков - это набор запущенных потоков (иначе говоря, рабочий потоков), в которых,каждый поток постоянно пытается получить объект task из BlockingQueue
, и когда он его получает, он выполняет задачу и затем возвращается в очередь, чтобы дождаться другой.
Задача - это объект с неким известным методом, который рабочий вызывает для «выполнения» задачи.Например, в пулах потоков, определенных стандартной библиотекой Java, объекты задач являются либо Runnable
экземплярами, либо Callable
экземплярами, а рабочий выполняет задачу, вызывая task.run()
или task.call()
.