XProtoman
(usa Fedora)
Enviado em 05/12/2016 - 02:46h
Boa noite ctw6av,
Tentei como voce decidir sobre a questao, apesar de nao ter implementado nada parece que a melhor opcao e assincrono, aparentemente o Whatsapp(nao tenho certeza), Node.js e Ngix podem ser exemplos de uma abordagem sem threads(por cliente) e com relativo sucesso.
Tentei procurar algo rapidamente e encontrei isso:
https://softwareengineeringdaily.com/2015/08/02/how-does-node-js-work-asynchronously-without-multith...
Provavelmente o design sem utilizar threads voce consiga algo mais rapido, eficiente e que suporte um certo volume de clientes. Tambem pode facilitar o debug.
EDIT:
Comprei a ideia de nao utilizar thread ao perceber que realmente cada thread consome recursos, seja de memoria ou processamento que sao limitados e precisam ser compartilhados, chegando a um determinado limite que sua aplicacao nao consegue atender bem aos clientes, ja uma obordagem sem threads, voce economiza recursos e permite que voce atenda mais e melhor com o que foi economizado.
Poucos clientes conectados provavelmente nao devem existir diferencas de um para outro. Quando a relacao clientes/threads comeca a consumir muitos recursos voce tem uma queda de desempenho.
Ate onde li, o Ngix aparentemente consegue superar o Apache por nao utilizar thread por cliente.
PS: Estou sem acentos porque estou usando o LiveCD do Debian para confirmar um bug no Fedora enquanto baixo o Ubuntu... Enfim, samba do crioulo doido.
____________________
“Mas nós sabemos que a razão de a maioria estar aqui, é a nossa afinidade com a desobediência!” (Morpheus)