Domanda

Di recente mi sono imbattuto in qualcosa chiamato IOCP sulla piattaforma Windows, per essere più precisi: Porte di controllo Input / Output. Questo sembra essere il modo più efficiente per codificare il software del tuo server quando deve contenere contemporaneamente migliaia di utenti. (Correggimi se sbaglio, ma i thread-per-socket, il polling e i callback asincroni (thread su ogni callback) non sono abbastanza efficienti.)

Mi chiedo se ci sono librerie di terze parti disponibili che implementano questo concetto. So che l'API win32 ci fornisce CreateIoCompletionPort, FreeBSD ha kqueue e Linux in generale può usare / dev / epoll che funziona in modo simile ... Ma non esiste una libreria multipiattaforma (come boost :: thread) che gestisce queste cose per me?

È stato utile?

Soluzione

Hai visto boost :: asio? Non sono sicuro che abbia ancora tutte queste funzionalità, ma credo che sia una delle cose a cui è destinato.

Altri suggerimenti

So che questa è una risposta tardiva a questo thread, ma per coloro che sono interessati a una libreria x-platform che supporta IO asincrono sia su Linux / UNIX che su Windows, potresti dare un'occhiata a libuv .

libuv è stato inizialmente costruito come base fondamentale di node.js, ma si è evoluto per diventare un potente libreria di astrazione per molti problemi di piattaforma x di basso livello tra cui IO asincrono, socket TCP non bloccanti e amp; named pipe, UDP, timer, spawn del processo figlio , tempo ad alta risoluzione, pianificazione del pool di thread, ecc.

libevent funziona su un numero di * nix OS e funziona anche su Windows.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top