Frage

Ich habe vor kurzem in etwas namens IOCP auf der Windows-Plattform gestoßen, um genauer zu sein: Input / Output Control Ports. Dies scheint zu sein, der effizienteste Weg, um Ihre Server-Software zu kodieren, wenn es benötigt gleichzeitig Tausende von Benutzern zu halten. (Korrigiert mich wenn ich falsch liege, aber Thread-per-Buchse, Polling und asynchrone Rückrufe (Thread auf jedem Rückruf) ist nicht effizient genug.)

Ich frage mich, ob es irgendwelche 3rd-Party-Bibliotheken zur Verfügung, die dieses Konzept umzusetzen. Ich weiß, dass die win32 api versorgt uns mit CreateIoCompletionPort hat FreeBSD kqueue und Linux im Allgemeinen verwenden können / dev / epoll, die etwas ähnlich funktioniert ... Aber ist das nicht ein Cross-Plattform-Bibliothek (wie boost :: thread), die dieses Zeug Griffe für mich?

War es hilfreich?

Lösung

Haben Sie bei boost :: asio sah? Ich bin mir nicht sicher, ob es diese Funktionalität alle noch hat, aber ich glaube, das ist eines der Dinge, die es bei beabsichtigter wird.

Andere Tipps

Ich weiß, dass dies eine späte Antwort auf diesen Thread, aber für die Interessenten in einer x-Plattform-Bibliothek async IO unterstützt sowohl Linux / UNIX und Windows, Sie vielleicht einen Blick auf libuv .

libuv wurde ursprünglich als die grundlegenden Untermauerung node.js konstruiert, aber es hat sich zu einem werden leistungsstarke Abstraktions-Bibliothek für viele Low-Level-x-Plattform betrifft, einschließlich asynchroner IO, TCP-Sockets nicht blockierende & Named Pipes, UDP, Timer, Kinder Prozess Laich , Hochauflösende Zeit, Thread-Pool Planung, etc.

libevent arbeitet an einer Reihe von * nichts OSes und läuft auch unter Windows.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top