"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Javascript NÃO é de thread único!!

Javascript NÃO é de thread único!!

Publicado em 31/07/2024
Navegar:221

NÃO! você não aprendeu errado que JavaScript é uma linguagem de thread único. É uma linguagem de thread único que tem acesso a um único thread principal para executar o código. Então, quando falamos sobre programação síncrona, estamos falando sobre esse thread solitário que faz todo o trabalho pesado e executa nosso código.
Image description

Mas, na realidade, o motor V8 e o Node.js usam uma biblioteca C chamada libuv para obter acesso a seis threads extras. Dois deles são usados ​​para fazer a coleta de lixo e o restante é usado para realizar tarefas em segundo plano, como programação assíncrona.

Sim. Quando dizemos que o código é assíncrono ou sem bloqueio, o que realmente acontece é que o código assíncrono é passado para esses threads extras com o callback e o thread principal continua fazendo seu trabalho sem bloquear o resto do código.

Javascript is NOT single threaded!!
Quando o código assíncrono é concluído, a função de retorno de chamada é enviada para a fila de eventos com erro ou com os dados necessários. Em seguida, o loop de eventos o empurra para a pilha de chamadas e, rapidamente, obtemos nosso resultado, para entender isso com algum código. Vejamos o método readfile do módulo fs.

fs.readFile("demo.text","utf8",(err,data)=>{
    if(error){       
        return error
    }
    console.log("output",data);
})

No código acima, o método readfile é passado para os threads de segundo plano. A leitura acontece em segundo plano e, quando termina, o retorno de chamada é enviado para a fila de eventos com erro ou dados.

Javascript is NOT single threaded!!

Uma vez na pilha de chamadas, o retorno de chamada é executado e ficamos com o erro ou os dados como saída.
Obrigado pela leitura, espero ter conseguido explicar sobre os meios de thread único em Javascript.

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/roshankbadola/javascript-is-not-single-threaded-3b9a?1 Se houver alguma violação, entre em contato com [email protected] para excluí-la
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3