Название: QEventThreadPool Отправлено: vregess от Декабрь 17, 2011, 19:27 Хочу поделиться одной наработкой.
Библиотека QEventThreadPool - пул потоков. Основные возможности: * Поддержка потоков с циклом событий (event loop), в отличии от QThreadPool - можно использовать сигналы и слоты в "воркерах". * 2 типа пулов: - пул с "эксклюзивными" потоками: к потоку можно присоединить только один объект; - пул с "общими" потоками - можно присоединить несколько объектов. * Вызов определенных слотов "воркера" (если они есть) при добавлении в пул: - init() - сразу после присоединении к потоку - run() - после init() - uninit() - перед отсоединением от потока. * Отложенное добавление в пул. Основная цель библиотеки - создать пул потоков с поддержкой signal/slot в "воркерах". Живет тут: https://github.com/skozlovf/QEventThreadPool (https://github.com/skozlovf/QEventThreadPool) Там же можно скачать архив. Нормальной документации пока нет, но есть набор тестов и пара примеров с комментариями на корявом английском. Для сборки нужен cmake и Qt >= 4.7, тестировал на Win7 и линуксе (убунту). Возможно я сделал что-то странное, но что-то похожего, к сожалению, не нашел. Название: Re: QEventThreadPool Отправлено: BRE от Декабрь 17, 2011, 19:41 но что-то похожего, к сожалению, не нашел. После прочтения описания в голове появилась ассоциация с threadweaver.Название: Re: QEventThreadPool Отправлено: vregess от Декабрь 18, 2011, 15:27 После прочтения описания в голове появилась ассоциация с threadweaver. Видимо речь о KDE ThreadWeaver (http://api.kde.org/4.0-api/kdelibs-apidocs/threadweaver/html/index.html (http://api.kde.org/4.0-api/kdelibs-apidocs/threadweaver/html/index.html)) ? Да, действительно что-то похожее.. Буду почитать доки, спасибо. Как-то в голову не пришло посмотреть в сторону KDE, видимо потому что делал свою реализацию для винды. Если их версия будет включать в себя функционал QEventThreadPool и ThreadWeaver можно отодрать от KDE, то похоже я зря писал библиотеку) Название: Re: QEventThreadPool Отправлено: BRE от Декабрь 18, 2011, 16:11 то похоже я зря писал библиотеку) Вовсе не зря. ThreadWeaver не особо развивается, по крайней мере в те моменты, когда я на нее натыкался... :)Название: Re: QEventThreadPool Отправлено: vregess от Декабрь 18, 2011, 22:05 Все еще изучаю ThreadWeaver. Немного разные идеологии.
Еще раз спасибо, BRE, что ткнул носом в ThreadWeaver, есть там интересные идеи навроде зависимостей задач. От развития своей версии пока решил не отказываться. |