Ориентированный на задачи пул потоков
-
09-06-2019 - |
Вопрос
Я создал модель для выполнения рабочих задач в серверном приложении, используя пул потоков, связанный с портом завершения ввода-вывода, как показано в следующих сообщениях:
http://blogs.msdn.com/larryosterman/ Архив / 2004/03/29 / 101329.aspx
Существуют ли какие-либо классы для повышения, которые могут помочь с этой моделью программирования?
Решение
Не совсем, по крайней мере, не в прошлый раз, когда я смотрел. Я имею в виду, что boost :: thread_group может сделать вещи немного более аккуратными в некоторых местах, но не так, чтобы это имело большое значение, я не думаю.
Поддержка потоков Boost кажется незначительно полезной при написании чего-то кросс-платформенного, но, учитывая, что то, что вы пишете, в любом случае будет зависеть от Win32 (из-за использования IOCP), на самом деле не так уж много извлечь выгоду из этого.
Другие советы
Возможно, вы захотите проверить проект threadpool , который выглядит как хорошая реализация пула потоков поверх увеличение. Я сам не пробовал, но выглядит довольно мило.
Я не видел ничего такого, что могло бы помочь с структурой, с которой вы, как правило, сталкиваетесь при использовании портов завершения ввода-вывода, но в последнее время я не смотрел на это ... Однако, немного не по теме, вы могли бы Я хотел бы взглянуть на пул потоков на основе IOCP, который является частью моей бесплатной инфраструктуры IOCP-сервера. Это может дать вам некоторые идеи, если ничего больше. Код можно найти здесь . Пул потоков поддерживает расширение и сжатие в зависимости от спроса и используется в производственных системах более 6 лет.
ACE имеет несколько реакторов, которые вы можете использовать для моделирования вещей вокруг ваши IOCPs. Некоторые из них могли быть добавлены для повышения, но повышение делает их создание довольно простым. Р>