2
respostas

NODEJS - Single Thread e Assincrono

Boa noite!

Alguém poderia me responder como o NodeJs pode ser Single Thread e Assíncrono???

Eu li em algum lugar uma comparação entre ASP.NET e o node. o ASP.NET por natureza possui um Thread Pool (contendo umas 20 threads) para atender as requisições e o Node só possui uma única Thread para atender as requisições.

Eu entendo que quando um processo é SINCRONO , a execução é feita uma por vez e quando um processo é ASSINCRONO ele não espera a execução de uma solicitação e já executa as próximas.

Não entra na minha cabeça como uma única Thread pode realizar processos assíncronos.

Alguém me entendeu???

Alguém consegue me explicar de forma didática como o NODEJS funciona??

Att,

Felipe.

2 respostas

Olá, Felipe! Tudo bom?

Ele não é exatamente single thread e isso acontece por conta do event loop do JavaScript. Gosto dessa postagem sobre event loop, se quiser dar uma lida. Quaisquer dúvidas ou discussões estou à disposição!

Muuuuuuuuuuuuito obrigado Juliana.

Achei esse trecho bem esclarecedor:

"Na verdade, quem é single thread é o V8, o motor do google utilizado para rodar o Node.js. A stack que vimos no capítulo anterior faz parte do V8, ou seja, ela é single thread.

Para que seja possível executar tarefas assíncronas, o Node.js conta com diversas outras APIs – algumas delas providas pelos próprios sistemas operacionais, como é o caso de eventos de disco, sockets TCP e UDP. Quem toma conta dessa parte de I/O assíncrono, de administrar múltiplas threads e enviar notificações é a libuv."

Finalmente eu acho que entendi.