Создание пула потоков с использованием boost - PullRequest
16 голосов
/ 03 ноября 2010

Можно ли создать пул потоков с помощью потока Boost? я просматривал все файлы надстройки Boost и не мог найти менеджер пула потоков (или что-то в этом роде) ... Есть ли способ сделать это?

Тпх!

Ответы [ 2 ]

35 голосов
/ 03 ноября 2010

Я знаю, что ответ принят, если вам это нужно прямо сейчас, и вы не можете потрудиться написать свой собственный пул потоков, вы можете попробовать использовать boost asio io_service с подсказкой параллелизма (то есть, сколько потоков должно быть запустить), а затем опубликовать () материал для этого io_service ... просто идея ..

8 голосов
/ 03 ноября 2010

В бусте есть неофициальный (пока) пул потоков . Но это не проблема, чтобы реализовать его самостоятельно, особенно если большая универсальность не является основной целью. Идея: ваш пул потоков может быть параметризован с типом TaskType и количеством рабочих. TP должен быть предоставлен обработчик, который принимает TaskType. ТП содержит очередь добавленных задач. Реальная функция потока просто берет задачу из очереди и вызывает переданный обработчик. Нечто подобное.

...