Executando verificação de segurança...
1

JavaScript Single Thread, Event queue e Event Loop

A base é essencial

Em 2019, no início da minha carreira, estava fazendo um estágio quando a febre da stack NodeJS, ReactJS e React Native tinha acabado de começar a estourar. E eu? Como um iniciante em programação, já fui direto aprender a stack sem nem ter noção de que a base é essencial e se eu tivesse dado valor a frase "Começa pelo VanillaJS" as coisas seriam diferentes. Atualmente sigo minha carreira utilizando NodeJS e da mesma forma que gostaria que eu tivesse tido essa base no inicio, irei repassar aqui. A única palavra que define o JavaScript nesse momento é Single Thread.

Single Thread, Event queue e Event Loop

Diferente de outras linguagens como Java que utiliza multi threads para trabalhar o JavaScript utiliza uma única, pensando de uma forma lógica, como é possivel o JavaScript fazer tudo isso? Por baixo dos panos o JavaScript é composto pela Single Thread, Event queue e Event Loop. A Single Thread é onde todas as nossas funções serão armazenadas como uma pilha ou seja, último a entrar, primeiro a sair e quando essa nossa pilha(stack) estiver toda preenchida o JavaScript irá aguardar ela ser resolvida para prosseguir com outras funções que estão armazenadas no Event Queue o event queue é monitorado pelo Event Loop, imagine o event loop sendo uma laço while que irá ficando dando voltas monitorando se o Event queue está vazio ou não e caso esteja vazio ele irá jogar as funções que deve ser executadas para a stack.

Carregando publicação patrocinada...
1

Temos que deixar algo claro:
Isso não é javascript.

Na especificação do javascriptp não tem uma linha sobre nada disso ai!

A unica fila que tem na especificação do JS é a callback Queue.
Que existe por causa da adição da Promise.

Se quiser entender o Node como eel funciona.
Tem uma série de textos que explicam bem!

Você vai adorar!

https://www.builder.io/blog/visual-guide-to-nodejs-event-loop

https://www.builder.io/blog/NodeJS-visualizing-nextTick-and-promise-queues

https://www.builder.io/blog/visualizing-nodejs-timer-queue

https://www.builder.io/blog/visualizing-nodejs-io-queue

https://www.builder.io/blog/visualizing-nodejs-io-polling

https://www.builder.io/blog/visualizing-nodejs-check-queue

https://www.builder.io/blog/visualizing-nodejs-close-queue

1