Открыть сервисСервис

Пул — понятие и виды

Пул — это объединение ресурсов, объектов или участников в общую группу, из которой они распределяются, используются или извлекаются по определённым правилам. Термин применяется в информатике, экономике, спорте, логистике и других областях, где требуется совместное управление ограниченным набором элементов.

Происхождение термина

Слово «пул» происходит от английского pool — «лужа, бассейн, скопление». В переносном значении оно означает «общий фонд». В русский язык термин пришёл в XX веке и закрепился в нескольких отраслях: сначала в финансовом и игровом жаргоне (пул ставок, карточный пул), затем в информатике (пул соединений, пул процессов) и в бизнес-терминологии (пул автомобилей, пул кадров).

Пул в информатике

В компьютерных технологиях пул — это заранее созданный набор однотипных объектов, который переиспользуется вместо постоянного создания и уничтожения новых. Подход называется «пулинг» (pooling) и позволяет снизить нагрузку на систему.

Пул соединений

Пул соединений (connection pool) — буфер открытых каналов связи с базой данных или сервером. Вместо того чтобы устанавливать новое соединение на каждый запрос, приложение берёт свободное соединение из пула, использует его и возвращает обратно. Популярные СУБД и веб-серверы (PostgreSQL, MySQL, Apache) поддерживают пулы соединений из коробки. Размер пула обычно задаётся конфигурацией: слишком маленький пул приводит к ожиданию, слишком большой — к перегрузке сервера.

Пул потоков и процессов

Пул потоков (thread pool) — набор заранее созданных рабочих потоков, ожидающих задачи из очереди. Когда поступает задача, один из свободных потоков берёт её в работу. Такой подход дешевле, чем создание нового потока на каждую задачу, потому что операционная система тратит ресурсы на создание и переключение потоков. Аналогичный принцип работает для процессов: например, веб-серверы используют пулы рабочих процессов (worker processes) для параллельной обработки запросов.

Пул памяти

Пул памяти (memory pool, arena) — выделенный заранее участок памяти, из которого приложение получает блоки фиксированного или ограниченного размера. Такой подход снижает накладные расходы на вызовы malloc/free и уменьшает фрагментацию кучи. Пулы памяти активно используются в игровых движках, встраиваемых системах и высоконагруженных серверах.

Пул объектов

Пул объектов (object pool) — паттерн проектирования, при котором экземпляры дорогих объектов (соединения, буферы, дескрипторы) создаются один раз и многократно переиспользуются. Вместо new приложение берёт объект из пула, а после использования возвращает его.

Пул в экономике и бизнесе

Пул ставок и инвестиционный пул

В финансах пул — это объединённый фонд средств участников. Пул ставок (totalisator) формируется из всех ставок на событие, из него выплачиваются выигрыши. Инвестиционный пул — совместный фонд, куда несколько инвесторов вкладывают капитал для коллективных вложений (например, паевые инвестиционные фонды, синдикаты).

Пул кадров

Пул кадров — база резервных сотрудников, сформированная работодателем или кадровым агентством. В пул включают кандидатов, которые не приняты на конкретную вакансию, но подходят по компетенциям. При появлении новой позиции работодатель сначала рассматривает кандидатов из пула, прежде чем открывать новый конкурс.

Пул транспорта

Пул автомобилей (car pool) — совместное использование одного транспортного средства несколькими пользователями или компаниями. Пул логистики — объединение грузов от разных отправителей для совместной перевозки, что снижает стоимость доставки.

Пул в спорте и играх

Бильярдный пул

Пул (американский бильярд) — вид бильярда, зародившийся в США в XIX веке. Игра ведётся на столе с шестью лузами, цель — забить шары в лузы по заданной схеме. В России более распространён снукер и русский бильярд, но пул популярен в Азии и Америке; крупнейшие турниры — US Open Nine-Ball Championship, Mosconi Cup.

Карточный пул

Пул — разновидность покера (пул-покер), а также общий банк в карточных играх, куда складываются ставки всех участников.

Пул в других областях

  • Пул переводов — набор заранее переведённых сегментов в системах локализации (CAT-системах), переиспользуемых при переводе похожих текстов.
  • Пул задач — очередь заданий в распределённых системах, из которой воркеры забирают работу (например, очереди RabbitMQ, Kafka).
  • Пул ресурсов в виртуализации — совокупность процессоров, памяти и дисков физического сервера, распределяемых между виртуальными машинами.

Общие принципы

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

Источники:

  • Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. «Приёмники объектно-ориентированного проектирования»
  • Коннелли Б., Силверстайн С. «Java Concurrency in Practice»
  • «Большая советская энциклопедия» / «Российская энциклопедия по информатике»
  • IEEE Computer Society. Glossary of Computing Terms
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru