Хочу поделиться одной наработкой.
Библиотека QEventThreadPool - пул потоков.
Основные возможности:
* Поддержка потоков с циклом событий (event loop), в отличии от QThreadPool - можно использовать сигналы и слоты в "воркерах".
* 2 типа пулов:
- пул с "эксклюзивными" потоками: к потоку можно присоединить только один объект;
- пул с "общими" потоками - можно присоединить несколько объектов.
* Вызов определенных слотов "воркера" (если они есть) при добавлении в пул:
- init() - сразу после присоединении к потоку
- run() - после init()
- uninit() - перед отсоединением от потока.
* Отложенное добавление в пул.
Основная цель библиотеки - создать пул потоков с поддержкой signal/slot в "воркерах".
Живет тут:
https://github.com/skozlovf/QEventThreadPoolТам же можно скачать архив.
Нормальной документации пока нет, но есть набор тестов и пара примеров с комментариями на корявом английском.
Для сборки нужен cmake и Qt >= 4.7, тестировал на Win7 и линуксе (убунту).
Возможно я сделал что-то странное, но что-то похожего, к сожалению, не нашел.