Pergunta

Eu recentemente esbarrou em algo chamado IOCP na plataforma Windows, para ser mais preciso: Entrada / Saída Portas de Controle. Este parece ser o maneira mais eficiente de código de seu software de servidor quando ele precisa milhares de retenção de usuários simultaneamente. (Me corrija se eu estiver errado, mas thread-per-socket, polling e retornos de chamada assíncronos (thread em cada chamada de retorno) não são suficientes eficiente.)

Eu estou querendo saber se há alguma 3rd party bibliotecas disponíveis que implementar esse conceito. Eu sei que a API do Win32 estoques norte-americanos com CreateIoCompletionPort, FreeBSD tem kqueue e Linux em uso geral podem / dev / epoll que funciona um pouco semelhante ... Mas não existe uma biblioteca multiplataforma (como boost :: thread) que lida com essas coisas para mim?

Foi útil?

Solução

Você olhou para boost :: asio? Eu não tenho certeza se ele tem toda esta funcionalidade ainda, mas eu acredito que é uma das coisas que está destinados a.

Outras dicas

Eu sei que esta é uma resposta final para esta discussão, mas para aqueles interessados ??em uma biblioteca de plataforma x apoiar S assíncrona em ambos Linux / Unix e Windows, você pode querer dar uma olhada em libuv .

libuv foi inicialmente construído como as bases fundamentais da node.js, mas evoluiu para se tornar um biblioteca de abstração poderosa para muitos de baixo nível, as preocupações de plataforma x incluindo S assíncrona, sem bloqueio sockets TCP e pipes nomeados, UDP, temporizadores, processo filho de desova , O tempo de alta resolução, pool de thread agendamento, etc.

libevent trabalhos sobre uma série de sistemas operacionais * nix e também roda em Windows.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top