Можно ли создать пул потоков, используя поток boost? я просмотрел все библиотеки boost и не смог найти менеджер пула потоков (или что-то в этом роде)... Есть ли способ сделать это?
Спасибо!
Можно ли создать пул потоков, используя поток boost? я просмотрел все библиотеки boost и не смог найти менеджер пула потоков (или что-то в этом роде)... Есть ли способ сделать это?
Спасибо!
Существует неофициальный (пока) threadpool в boost. Но не проблема реализовать его самостоятельно, особенно если большая универсальность не является основной целью. Идея: ваш пул потоков может быть параметризован типом TaskType и количеством воркеров. Для TP должна быть задана функция-обработчик, которая принимает TaskType. ТП содержит очередь добавленных задач. Настоящая функция потока просто берет задачу из очереди и вызывает переданный обработчик. Что-то такое.
Я знаю, что ответ был принят, если вам это нужно прямо сейчас, и вы не можете писать свой собственный пул потоков, вы можете попробовать использовать boost asio io_service с подсказкой параллелизма (т.е. сколько потоков он должен запускать) и затем отправьте сообщение () в этот io_service... просто идея..