Вопрос

Я создал модель для выполнения рабочих задач в серверном приложении, используя пул потоков, связанный с портом завершения ввода-вывода, как показано в следующих сообщениях:

http://weblogs.asp.net/kennykerr/archive/2008/01/03/parallel-programming-with-c-part-4-io-completion-ports.aspx

http://blogs.msdn.com/larryosterman/ Архив / 2004/03/29 / 101329.aspx

Существуют ли какие-либо классы для повышения, которые могут помочь с этой моделью программирования?

Это было полезно?

Решение

Не совсем, по крайней мере, не в прошлый раз, когда я смотрел. Я имею в виду, что boost :: thread_group может сделать вещи немного более аккуратными в некоторых местах, но не так, чтобы это имело большое значение, я не думаю.

Поддержка потоков Boost кажется незначительно полезной при написании чего-то кросс-платформенного, но, учитывая, что то, что вы пишете, в любом случае будет зависеть от Win32 (из-за использования IOCP), на самом деле не так уж много извлечь выгоду из этого.

Другие советы

Возможно, вы захотите проверить проект threadpool , который выглядит как хорошая реализация пула потоков поверх увеличение. Я сам не пробовал, но выглядит довольно мило.

Я не видел ничего такого, что могло бы помочь с структурой, с которой вы, как правило, сталкиваетесь при использовании портов завершения ввода-вывода, но в последнее время я не смотрел на это ... Однако, немного не по теме, вы могли бы Я хотел бы взглянуть на пул потоков на основе IOCP, который является частью моей бесплатной инфраструктуры IOCP-сервера. Это может дать вам некоторые идеи, если ничего больше. Код можно найти здесь . Пул потоков поддерживает расширение и сжатие в зависимости от спроса и используется в производственных системах более 6 лет.

ACE имеет несколько реакторов, которые вы можете использовать для моделирования вещей вокруг ваши IOCPs. Некоторые из них могли быть добавлены для повышения, но повышение делает их создание довольно простым.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top