Threads on Node js 💥Everything you need to know!!

  Рет қаралды 14,028

Waldemar Neto - Dev Lab

Waldemar Neto - Dev Lab

5 жыл бұрын

More threads have arrived on Node js!!! 🎉🎉🎉🎉🎉🎉 What do I mean with "more threads"? It's time to dig deep on Node's interns to understand the worker_threads!
This video is for EVERYONE who works with Node.js, we will go through the Node's architecture and design to understand how threads fit into it.
In this video we will talk about:
👉How Node's async flow works and what's the Event Loop
👉What' is the worker_threads and how it works?
👉What is the use cases
👉What's the difference between async I/O, cluster module and worker threads
👉How to share memory amongst threads using features from Ecmascript 2017
Code used in the video
github.com/waldemarnt/node-do...
github.com/watson/worker-thre...
References:
nodejs.org/api/worker_threads...
github.com/tc39/ecmascript_sh...
developer.mozilla.org/en-US/d...
developer.mozilla.org/en-US/d...
www.sitepen.com/blog/the-retu...
github.com/nodejs/help/issues...
developer.mozilla.org/en-US/d...
developer.mozilla.org/en-US/d...
/ ekqcrjn
Please don't forget to 👍 and comment 🗣

Пікірлер: 102
@jardelcasteluber6189
@jardelcasteluber6189 5 жыл бұрын
Cara, fico muito feliz quando descubro um novo canal no KZfaq de programação que a pessoa se empenha pra trazer um conteúdo bom. Parabéns, Waldemar. E muito obrigado!
@glauberbispo8922
@glauberbispo8922 Жыл бұрын
video bem completo engraçado conceitos avançados como esse n serem tão populares
@SouDev
@SouDev 5 жыл бұрын
Monstro! Baita vídeo!
@gabrielbibiano2629
@gabrielbibiano2629 5 жыл бұрын
Caraca, que vídeo animal! Parabéns pelo conteúdo!
@josev1nicius
@josev1nicius 4 жыл бұрын
Muito bom irmão, você derrete esses assuntos!
@foxfrito
@foxfrito 5 жыл бұрын
Ótimo vídeo! :)
@embura
@embura 5 жыл бұрын
Muito bom o vídeo !
@wendellpalazzo6909
@wendellpalazzo6909 3 жыл бұрын
Muito bom! Parabéns!
@aercioferreiraneiva8640
@aercioferreiraneiva8640 5 жыл бұрын
Cara que video top, parabéns pelo conteúdo.
@LucasSoaresAraujo
@LucasSoaresAraujo 4 жыл бұрын
Obrigado pelo vídeo! Muito top!
@johnfaria2278
@johnfaria2278 5 жыл бұрын
Cara o conteúdo do teu canal é muito bom, PARABÉNS
@marcelodasilva4502
@marcelodasilva4502 4 жыл бұрын
Caraca muito bom o canal irmão, ótima didática
@lucasmls_
@lucasmls_ 5 жыл бұрын
O conteúdo do canal está sensacional! Por favor, continue com estes tipos de videos
@abelmferreira
@abelmferreira 5 жыл бұрын
Fantástico Waldemar! Parabéns pelo conteúdo que compartilha! Assisto todos e sempre ajudam muito!! Obrigado
@TiagoGeremias
@TiagoGeremias 5 жыл бұрын
Parabéns pelo conteúdo,
@123franzin
@123franzin 2 жыл бұрын
Que aula sensacional, muito obrigado!
@ffpthai
@ffpthai 3 жыл бұрын
Show de bola!
@canalluanoliveira
@canalluanoliveira 3 жыл бұрын
Muito bom!
@vilmarMartins
@vilmarMartins 3 жыл бұрын
Waldemar, que qualidade de vídeo! Muito obrigado por compartilhar tanto conhecimento com a gente.
@flawtista
@flawtista 5 жыл бұрын
Parabéns cara! ótima explicação e bem didática, sempre associando com show cases.
@diegoca8682
@diegoca8682 3 жыл бұрын
Muiito bom!
@gabrielrufino9041
@gabrielrufino9041 3 жыл бұрын
parabéns mano
@leonardograndi1367
@leonardograndi1367 2 жыл бұрын
Que vídeo sensacional!!!
@tiagomurilo3116
@tiagomurilo3116 3 жыл бұрын
Muito bom, parabens pelo conteúdo, me ajudou muito!
@hectorcardoso3747
@hectorcardoso3747 5 жыл бұрын
ótima explicação. parabéns pelo trabalho.
@rogeriosobrinho7708
@rogeriosobrinho7708 3 жыл бұрын
Material excelente! Parabéns pela iniciativa e por compartilhar o conteúdo
@leandronovaes5664
@leandronovaes5664 3 жыл бұрын
Muito bom
@vitorolivier
@vitorolivier 3 жыл бұрын
Conteudo de ouro, muito claro e didático. Parabéns, Waldemar!!! Ganhou um novo seguidor :)
@1729patrick
@1729patrick 4 жыл бұрын
Que conteúdoincrível. Parabéns pelo vídeo
@michaelreis7416
@michaelreis7416 11 ай бұрын
Que vídeo fantástico ❤
@safari433_
@safari433_ 2 жыл бұрын
Que conteúdo fantástico - você sempre trás assunto bom de saber que agrega muito para quem tá aprendendo - vlw mesmo.
@fabianogirardi9604
@fabianogirardi9604 4 жыл бұрын
que show esta sua explicacao, parabens!
@wusley
@wusley Жыл бұрын
Gosto bastante da sua didática, obg pelo conteúdo!
@JanderSilva01
@JanderSilva01 2 жыл бұрын
Conteúdo incrível Waldemar. Muito obrigado!!
@matheusfernandes9517
@matheusfernandes9517 10 ай бұрын
Muito bom esse video! Aprendi demais
@SebaRealino
@SebaRealino 3 жыл бұрын
Parabéns! Ótimo conteúdo.
@caiofxlipe8810
@caiofxlipe8810 2 жыл бұрын
Caraca que video absurdo. Mt bom cara.
@joaoapuamelo5899
@joaoapuamelo5899 2 жыл бұрын
Brigado pelo vídeo, cara! Me ajudou muito em um projeto que tô fazendo no momento.
@FelipeDiogoKun
@FelipeDiogoKun 5 жыл бұрын
Fala Waldemar, tudo certo? Muito massa o video, a unica coisa que eu reparei nesse video que poderia ser melhor é a diferença de audio (volume) entre a parte que só tu aparece e a parte que tu ta codando.... fora isso o video ta muito bom mesmo, super informativo, com exemplos, os exemplos estão disponiveis, yada, yada, yada.... Abração!
@JuraciVieiraNeto
@JuraciVieiraNeto 5 жыл бұрын
Muito foda Waldemar! Vou inventar um projeto pra usar isso.
@user-fd3lz8jz7n
@user-fd3lz8jz7n 9 ай бұрын
Caraca MLK............. mandou bem d++!!! Vou usar e vou guardar ...
@thiagosantos41
@thiagosantos41 3 жыл бұрын
Um conteúdo muito importante, alto nível com uma didática excelente. Esse conteúdo está sendo muito útil, devido a um CLI de transferência de arquivos entre storages que estou realizando. Obrigado! :D
@willianzuqui8005
@willianzuqui8005 4 жыл бұрын
conteúdo realmente útil, vim do C# e uso muito as threads, agora estou com projetos menores e estou usando nodejs e seu material me ajudou bastante, obrigado.
@FelipeFontana
@FelipeFontana 5 жыл бұрын
Cara te admiro demais, seus conteúdos são fenomenais, são coisas que não tem na net, e quando tem não estão claras como no vídeo, só algumas palavras mesmo para agradeçer e dar mais força! Um dia quero trabalhar com nodejs de verdade, Abraços!
@gbrllnz
@gbrllnz 4 жыл бұрын
Que vídeo sensacional, Waldemar. Volte a postar vídeos, a comunidade agradeceria muito. 😁
@RafaelCapoani
@RafaelCapoani 4 жыл бұрын
Conteúdo Toop!! Trago bastante conteúdo de PHP em meu canal, mesmo sendo em Node deu pra tirar proveito de muitos pontos relacionados a Threads e Processos com esse vídeo. Parabéns por criar esse conteúdo de nível técnico alto. Pois é complicado achar algo nesse nível.. Abraço!
@JoaoPauloLindgren
@JoaoPauloLindgren 4 жыл бұрын
Caramba, fiquei surpreso com a qualidade. Legal ter feito em português também. A gente carece de bons conteúdos na nossa língua. Suas explicações são mto didáticas parabéns =] Subscribed!
@Mercio2
@Mercio2 Жыл бұрын
massa!
@cabritotv
@cabritotv 11 ай бұрын
Boa
@marcospereira3614
@marcospereira3614 Жыл бұрын
Muito bom, estava procurando uma maneira de comparar o funcionamento do java e o javascript para lidar com Threads e esse video caiu como uma luva 😁
@tiagospfc1972
@tiagospfc1972 4 жыл бұрын
Eu não sou muito de comentar em vídeos, mas esse vídeo tá sensacional! Tive que vir comentar, deixei meu like e me inscrevi, vídeo muito bem feito, continue com o conteúdo, ajudou muito!
@WaldemarNetoDevLab
@WaldemarNetoDevLab 4 жыл бұрын
🤘
@brunomelo4570
@brunomelo4570 5 жыл бұрын
muito booom !!! vai continuar com a serie de Design Patterns?
@luiz-goncalves
@luiz-goncalves 5 жыл бұрын
Muito interessante... Obrigado pelo vídeo! Penso que um caso de uso relativamente interessante seja usar os worker threads para usar computações mais pesadas do módulo crypto (já que algumas operações são síncronas). :)
@rafaeldiassilvasilva4205
@rafaeldiassilvasilva4205 3 жыл бұрын
top
@gabrielguimaraes3349
@gabrielguimaraes3349 3 жыл бұрын
Já usei worker threads, mas não compartilhava conteúdo entre elas, bem legal saber que dá pra fazer isso. Criei um pool de Thread pra envio de e-mail em massa usando RabbitMQ
@WaldemarNetoDevLab
@WaldemarNetoDevLab 3 жыл бұрын
Bom caso de uso!
@BrunoHenrique-io3pt
@BrunoHenrique-io3pt 3 жыл бұрын
Boa noite! Achei seu video muito massa, eu vou utilizar em um trabalho da faculdade onde devo implementar um contador de palavras utilizando o conceito Produtor-Consumidor. A rede deve funcionar com vários Produtores e Consumidores e um Gerenciador de notificações
@Dsouza10082
@Dsouza10082 4 жыл бұрын
Cara obrigado, parabéns. No meu caso preciso de um Timer rodando de 30 em 30 segs, neste caso prefiro n usar o setInterval, uso o timer do RXJS com Observables, no fundo sei que ele usa o "setInterval", mas preciso ter mais feedback/controle no eventloop, adicionando o Worker ele executa uma verificação sem parar meu event principal.
@adrianosouza5518
@adrianosouza5518 3 жыл бұрын
Ótimo vídeo. Trabalho com java e estou aprendendo node agora e seus vídeos estão ajudando demais. No youtube / udemy acho muito conteudo mais voltado pra iniciante, e é muito bom ter um canal como o seu com um conteudo mais aprofundado como esse de threads. Estou fazendo o curso da API de meteorologia e estou gostando muito por ser um case mais complexo, pois que quem já programa em outra linguagem e uma chatisse ficar fazendo esses cursos que só tem CRUD :D
@WaldemarNetoDevLab
@WaldemarNetoDevLab 3 жыл бұрын
Fala Adriano! Legal cara, essa é a minha ideia, conteudo mais especializado para realmente mostrar coisas que só se ve no dia a dia!
@157157ricardo
@157157ricardo 3 жыл бұрын
Gostei, top a explicação, a dúvida que fica é a seguinte, imagina que tenha 50 clientes acessando essa função, nesse caso essas operações vai ser a nível de cliente? por exemplo: cada cliente vai fazer essas processos, ou ele faz todo esse processo pra todos os clientes sendo cada um esperando finalizar os processo para cada um, e depois iniciar para outro cliente dependendo dos recursos da maquina ? não sei se deu pra entende, mas qualquer coisa refaço a pergunta.
@PalmerOliveira
@PalmerOliveira 5 жыл бұрын
Muito bom o conteúdo. Waldemar, no caso eu tenho uns jobs onde uso node + rabbitmq, tu acha que usando workers poderia ser uma opção ao rabbitmq ? Obrigado por compartilhar.
@principe.borodin
@principe.borodin 5 жыл бұрын
eu usaria pra video conferencia e criacao de servidores automatizada.
@AnaHelena
@AnaHelena 2 жыл бұрын
Excelente vídeo!! Você acha que ele ainda é válido em 2022?
@flawtista
@flawtista 5 жыл бұрын
Esse esquema do node é bastante similar com o Pthreads ou OpenMP do C/C++
@michelbernardo6883
@michelbernardo6883 4 жыл бұрын
Monta um grupo no Telegram ai , ou já tem ?
@TheWutachi
@TheWutachi 4 жыл бұрын
Faça mais videos amigo
@WaldemarNetoDevLab
@WaldemarNetoDevLab 4 жыл бұрын
Tem conteudo novo saindo logo! fica ligado
@principe.borodin
@principe.borodin 5 жыл бұрын
mano, como usar tmux no mac? kkk consegui nao.....fora isso, muito bom o material, o video, parabens pela pesquisa
@geisonsn
@geisonsn 5 жыл бұрын
Parabéns, Waldemar! Material de extrema qualidade e relevância! Não esquece de conferir as perguntas nas respostas a esse comentário ;).
@geisonsn
@geisonsn 5 жыл бұрын
1. Observei no código de exemplo sobre Cluster que você implementa manualmente o uso e gestão das CPUs. Nos projetos que você gerencia você também utiliza essa abordagem ou faz uso de alguma ferramenta que simplifica esse processo, como por exemplo o PM2?
@geisonsn
@geisonsn 5 жыл бұрын
2. Há alguma relação entre o recurso de Thread Pool do libuv com Worker Thread ou com Worker Thread Pool ou são coisas distintas, implementações distintas sem relação?
@geisonsn
@geisonsn 5 жыл бұрын
@@WaldemarNetoDevLab obrigado pela resposta. Vou aguardar os links.
@user-cf5uf9sw1u
@user-cf5uf9sw1u 4 жыл бұрын
vim + tmux, instalike haha
@ricardolucas5908
@ricardolucas5908 5 жыл бұрын
Ótimo conteúdo, muito bom mesmo se poder indicar cursos ficarei grato vlw mestre !!
@ricardolucas5908
@ricardolucas5908 5 жыл бұрын
@@WaldemarNetoDevLab Tudo bem não consegui acessar muito essa semana, mas mestre, quero focar em sistemas web, com js queria algo que me desse um norte para isso, sei que é pedir muito mas se poder me dar esse help kk fico grato vlw
@johnsmera5879
@johnsmera5879 5 жыл бұрын
Parabéns Waldemar, excelente conteúdo, tô antenado aqui no canal. Aproveitar pra fazer um pedido: um vídeo pra gente explicando os fundamentos e práticas necessárias para criar uma API(rest or not) pública seguindo as diretrizes de segurança usando Node.js, em outras palavras seria 'O que você precisa pra lançar sua API Node.js pública de maneira segura'. Abraços!
@johnsmera5879
@johnsmera5879 5 жыл бұрын
PS: acho que isso é assunto para uma série, não para um vídeo huahaua, mas creio que ajudaria muita gente incluindo eu que tô meio sem saber por onde começar.
@johnsmera5879
@johnsmera5879 5 жыл бұрын
@@WaldemarNetoDevLab opa, show, aguardando! Hahaha 👊👊
@c0nf1cka14
@c0nf1cka14 4 жыл бұрын
Primeiramente parabéns pelo vídeo, super esclarecedor e de ótima qualidade. Tenho um projeto que realiza muitos cálculos matemáticos (um robô de trading), recebo os dados via websocket de uma corretora e processo tudo em tempo real e preciso desses resultados o mais rápido possível para tomada de decisões. No meu caso, acredita ser melhor cluster ou threads? Obrigado.
@xorot
@xorot 4 жыл бұрын
Interessante sua aplicação, da sua dúvida nasceu minha dúvida : Nesse caso, não seria interessante mesclar os dois e implementar um load balancer ?
@c0nf1cka14
@c0nf1cka14 4 жыл бұрын
@@xorot é uma opção valida tbm sim sem dúvidas.. No entanto tenho que estudar como faria devido a conexão websocket com a corretora, para não calcular um ativo que já foi calculado em uma outra instância.. Por isso perguntei do cluster, pq daí tenho q ver como faria com essa conexão, entendeu?
@WaldemarNetoDevLab
@WaldemarNetoDevLab 4 жыл бұрын
Depende muito do design da tua API se tu conseguir fazer os dados serem consumidos pelo worker diretamente vale a pena, se nao cluster faz mais sentido.
@fernandojgomes
@fernandojgomes 5 жыл бұрын
Parabéns muito bom seu vídeo! E de pessoas assim, que me matem aqui no KZfaq .
@Renanfa1
@Renanfa1 5 жыл бұрын
Boa tarde Waldemar. Tenho uma pergunta sobre o cluster. Entendi a utilidade dele, até por causa da natureza single thread do JavaScript. Mas ao invés de usar o cluster, não seria a mesma coisa se eu criar o container com um CPU só? (Considerando um cenário com docker) Pois se eu coloco essa preocupação para a infra, eu não vou adicionar um código extra no meu nodejs. O que acha?
@thiagodomingues4769
@thiagodomingues4769 3 жыл бұрын
Cara, muito bom! Parabéns, vou comer os teus conteúdos huahsua Seguinte, tenho uma aplicação e de vez em quando precisa rodar uma rotina de importação onde eu faço uma requisição para uma API de um terceiro... e trago muitos dados, exemplo, 20000 registro e preciso insertar no meu banco de dados conforme o resultado... e após insertar registro por registro, preciso enviar esses dados de maneira unica, para uma outra API também através de uma requisição... você acredita que se eu fazer um "chunk" dessa resposta e criando multi treads seria um caso valido? Obrigado!
@WaldemarNetoDevLab
@WaldemarNetoDevLab 3 жыл бұрын
Opa Thiago, caso de uso interessante, mas nesse caso tu estaria usando basicamente as requisições http e o node.js ja é extremamente otimizado pra isso pois o I/O é assincrono, então oque eu faria era separar as requisições de alguma maneira e inves de buscar 20000 de uma vez faria 20 requisições ao mesmo tempo buscando 1000 se possivel, usando algo como Promise.all. Depois pra enviar eu não entendi muito bem, tu teria que mandar os 20k de uma vez? Abraço!
@thiagodomingues4769
@thiagodomingues4769 3 жыл бұрын
@@WaldemarNetoDevLab Não não, a API desse serviço não aceita, é 1 por 1 mesmo...
@marcosoliveira8731
@marcosoliveira8731 4 жыл бұрын
+1
@lucasviece
@lucasviece 5 жыл бұрын
em servidor que so tem 1 CPU, n seria util usar threads?
@xavierjece12
@xavierjece12 3 жыл бұрын
Para executar filas em background job posso usar?
@WaldemarNetoDevLab
@WaldemarNetoDevLab 3 жыл бұрын
Sim certamente!
@canalred3609
@canalred3609 4 жыл бұрын
Eu estou desenvolvendo um mmorpg utilizando socketio, queria fazer o serve utilizar todos os nucleo, isso desse video funciona?
@WaldemarNetoDevLab
@WaldemarNetoDevLab 4 жыл бұрын
Talvez o cluster no teu caso seja melhor ja q tu vai precisar q cada socket tenha acesso a toda a aplicacao
@soludev2001
@soludev2001 4 жыл бұрын
qual é este editor que você usou no console ?
@WaldemarNetoDevLab
@WaldemarNetoDevLab 4 жыл бұрын
no console uso zsh + tmux ohmyz.sh/ www.hamvocke.com/blog/a-quick-and-easy-guide-to-tmux/
@lucasguimaraes7959
@lucasguimaraes7959 3 жыл бұрын
O meu não passa 2 vezes de forma alguma, então não consigo processar os dados
@WaldemarNetoDevLab
@WaldemarNetoDevLab 3 жыл бұрын
Opa Lucas, não entendi bem, pode me explicar melhor o problema que tu ta tendo?
@SouAndersonDavid
@SouAndersonDavid 4 жыл бұрын
Eu já ia procurar isso de thread kkkk achei o vídeo com CI e vim mexer no canal, ótimo conteúdo Mas desculpa por isso, mas abre a boca vei '-'
@SouAndersonDavid
@SouAndersonDavid 4 жыл бұрын
@@WaldemarNetoDevLab Boca fechada kkkk mas o conteudo ta perfeito, ganhou mais um inscrito
@aristotelescoutinho
@aristotelescoutinho 4 жыл бұрын
Putz.... conteúdo massacre!!! Posta mais!!!
Node.js e Typescript: Entendendo Tipagem e Declaration Merging de Globais
15:28
Waldemar Neto - Dev Lab
Рет қаралды 2,5 М.
Promise do zero em Javascript/Node js [pt1]: Async I/O, Callbacks e Event Loop
36:18
50 YouTubers Fight For $1,000,000
41:27
MrBeast
Рет қаралды 211 МЛН
No empty
00:35
Mamasoboliha
Рет қаралды 10 МЛН
Gym belt !! 😂😂  @kauermotta
00:10
Tibo InShape
Рет қаралды 18 МЛН
Prisma vs TypeORM: Qual é o melhor ORM para o Node.js?
27:22
Waldemar Neto - Dev Lab
Рет қаралды 8 М.
JavaScript Visualized - Event Loop, Web APIs, (Micro)task Queue
12:35
Next.js 14 - SEO & Metadata Tutorial (Complete Guide)
39:40
Codewalk Empire
Рет қаралды 9 М.
When is NodeJS Single-Threaded and when is it Multi-Threaded?
18:42
Hussein Nasser
Рет қаралды 71 М.
Water powered timers hidden in public restrooms
13:12
Steve Mould
Рет қаралды 690 М.
DVC 13 - Arquitetura de Software com Rodrigo Branas e Elton Minetto
1:55:52
Waldemar Neto - Dev Lab
Рет қаралды 20 М.
SQL no Node.js com Sequelize | Masterclass #01
1:40:22
Rocketseat
Рет қаралды 247 М.
Cache no Node.js rápido e simples com node-cache - PR#31 Uesley Silva
20:30
Waldemar Neto - Dev Lab
Рет қаралды 6 М.
iPhone 15 Pro в реальной жизни
24:07
HUDAKOV
Рет қаралды 484 М.
Какой ноутбук взять для учёбы? #msi #rtx4090 #laptop #юмор #игровой #apple #shorts
0:18
Как удвоить напряжение? #электроника #умножитель
1:00
Hi Dev! – Электроника
Рет қаралды 1,1 МЛН
Опасность фирменной зарядки Apple
0:57
SuperCrastan
Рет қаралды 11 МЛН