‫Instrutor: Então, lembre-se que na última
‫aula, falamos sobre a arquitetura do Node,
‫onde duas partes fundamentais
‫são o pool de threads e o loop de eventos.
‫Portanto, nesta aula, você aprenderá tudo
‫sobre threads e um pool de threads.
‫E no
‫próximo, vamos mergulhar fundo no loop de eventos.
‫Então vamos começar.
‫Portanto, em primeiro lugar, quando usamos o Node em um
‫computador, significa que há um processo do
‫Node em execução naquele computador.
‫E o processo é apenas um programa em execução.
‫E já aprendemos esse Nodo. js é
‫basicamente um programa C ++, que,
‫portanto, iniciará um processo quando estiver em execução.
‫Isso é importante porque,
‫no Node, temos acesso a uma variável
‫de processo, que usaremos posteriormente neste curso.
‫Agora nesse processo, Node. js é executado
‫em uma chamada thread única.
‫E um thread é basicamente apenas uma sequência de instruções.
‫Mas não é importante entender profundamente
‫o que é um segmento ou processo.
‫Isso é mais sobre ciência da computação.
‫Imagine uma thread como uma caixa
‫onde nosso código é executado no processador de um computador.
‫Agora, o que é importante entender aqui
‫é o fato de que o Node é executado em apenas um
‫thread, o que torna mais fácil bloquear aplicativos do Node.
‫E isso é algo sobre o qual falamos antes, na verdade.
‫Mas é algo muito, muito importante lembrar, porque esse
‫é um dos recursos exclusivos
‫do Node. js traz para a mesa.
‫Portanto, novamente, se você executar seu aplicativo Node, ele será
‫executado em apenas um único thread.
‫Não importa se você tem 10 usuários ou
‫10 milhões de usuários acessando seu aplicativo ao mesmo tempo.
‫Portanto, você precisa ter muito
‫cuidado para não bloquear esse thread.
‫E nós, é claro,
‫cuidaremos disso ao longo do projeto neste curso.
‫Continuando, agora vamos entender rapidamente
‫exatamente o que acontece em um único thread
‫quando você inicia seu aplicativo Node.
‫Portanto, quando o programa é inicializado, todo o código de
‫nível superior é executado, o que significa todo o código
‫que não está dentro de
‫nenhuma função de retorno de chamada.
‫Além disso, todos os módulos de que seu aplicativo precisa são necessários e
‫todos os retornos de chamada são registrados,
‫assim como os que
‫usamos para nosso servidor HTP no aplicativo Node Farm.
‫Lembre-se disso?
‫Depois de tudo isso, o loop de eventos finalmente começa a funcionar.
‫E novamente, mais sobre o evento em loop no próximo vídeo.
‫O que você precisa saber agora é que o loop de
‫eventos é onde a maior parte do trabalho é feito em seu aplicativo.
‫Portanto, é realmente o coração de toda a arquitetura do Node.
‫Mas aqui está o problema, algumas tarefas são realmente muito pesadas.
‫Eles são muito caros para serem executados no loop de
‫eventos porque, então, bloqueariam o único encadeamento.
‫E é aí que entra o pool de threads, que,
‫assim como o loop de eventos,
‫é fornecido ao Node. js pela biblioteca
‫libuv de que falamos antes.
‫Portanto, o pool de threads nos fornece quatro
‫threads adicionais que são completamente separados do thread único principal.
‫E podemos realmente configurá-lo para até 128 threads.
‫Mas normalmente, esses quatro são suficientes.
‫Portanto, esses threads juntos formaram um pool de threads.
‫E o loop de eventos pode
‫então descarregar automaticamente tarefas pesadas para o pool de threads.
‫E tudo isso acontece automaticamente nos bastidores.
‫Não somos nós, desenvolvedores, que decidimos o que
‫vai e o que não vai para o pool de threads.
‫Agora, as tarefas caras que são descarregadas são
‫todas as operações que lidam com arquivos, tudo relacionado
‫à criptografia, como o cache de senhas, então todas
‫as coisas de compressão e também pesquisas de DNS, que
‫basicamente associa os domínios
‫da web aos seus endereços IP reais correspondentes.
‫Portanto, este é o
‫material que bloquearia mais facilmente o thread principal.
‫E assim, o Node se encarrega de
‫descarregá-los automaticamente no pool de threads,
‫onde eles não bloqueiam nosso loop de eventos.
‫E essa é a coisa mais
‫importante que quero que você retenha deste vídeo.
‫Portanto, vamos agora prosseguir e falar sobre o loop de eventos em si.