Вопрос

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

Мне интересно, есть ли какие-либо сторонние библиотеки, реализующие эту концепцию.Я знаю, что API Win32 предоставляет нам CreateIoCompletionPort, во FreeBSD есть kqueue, а Linux вообще может использовать /dev/epoll, который работает примерно так же...Но нет ли кроссплатформенной библиотеки (например, boost::thread), которая справится с этим за меня?

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

Решение

Вы смотрели boost::asio?Я не уверен, есть ли в нем все эти функции, но я считаю, что это одна из целей, для которых он предназначен.

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

Я знаю, что это поздний ответ в этой теме, но для тех, кто заинтересован в библиотеке x-платформы, поддерживающей асинхронный ввод-вывод как в Linux/UNIX, так и в Windows, вы можете взглянуть на Либув.

Либув Первоначально был построен как основополагающие основы Node.js, но он развивался, чтобы стать мощной библиотекой абстракции для многих низкоуровневых, x-платформенных проблем, включая асинхро Процесс нереста, время высокого разрешения, планирование пула потоков и т. Д.

libevent работает на ряде ОС *nix, а также работает на Windows.

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