Spec-Zone .ru
спецификации, руководства, описания, API
След: Существенные Классы
Урок: Параллелизм
Раздел: Высокоуровневые Объекты Параллелизма
Подраздел: Исполнители
Пулы потоков
Домашняя страница > Существенные Классы > Параллелизм

Пулы потоков

Большинство реализаций исполнителя в java.util.concurrent используйте пулы потоков, которые состоят из рабочих потоков. Этот вид потока существует отдельно от Runnable и Callable задачи это выполняется и часто используется, чтобы выполнить многократные задачи.

Используя рабочие потоки минимизирует издержки, должные распараллеливать создание. Объекты потока используют существенное количество памяти, и в крупномасштабном приложении, выделяя и освобождение многих объектов потока создают существенные издержки управления памятью.

Один общий тип пула потоков является фиксированным пулом потоков. У этого типа пула всегда есть конкретное количество выполнения потоков; если поток так или иначе завершается, в то время как это находится все еще в использовании, это автоматически заменяется новым потоком. Задачи представляются пулу через внутреннюю очередь, которая содержит дополнительные задачи всякий раз, когда есть более активные задачи чем потоки.

Важное преимущество фиксированного пула потоков состоит в том, что приложения, используя его ухудшаются корректно. Чтобы понять это, рассмотрите заявление веб-сервера, где каждый запрос HTTP обрабатывается отдельным потоком. Если приложение просто создаст новый поток для каждого нового запроса HTTP, и система получает больше запросов, чем это может сразу обработать, то приложение внезапно прекратит отвечать на все запросы, когда издержки всех тех потоков превысят емкость системы. С пределом на числе потоков, которые могут быть созданы, приложение не будет обслуживать запросы HTTP так быстро, как они входят, но это будет обслуживать их так быстро, как система может выдержать.

Простой способ создать исполнителя, который использует фиксированный пул потоков, состоит в том, чтобы вызвать newFixedThreadPool метод фабрики в java.util.concurrent.Executors Этот class также обеспечивает следующие методы фабрики:

Если ни один из исполнителей, предоставленных вышеупомянутыми методами фабрики, не удовлетворяет Ваши потребности, создавая экземпляры java.util.concurrent.ThreadPoolExecutor или java.util.concurrent.ScheduledThreadPoolExecutor даст Вам дополнительные опции.


Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Интерфейсы Исполнителя
Следующая страница: ветвление/Соединение