Paralelismo em .NET com Thread, ThreadPool, TPL e CUDA

  Рет қаралды 7,412

EximiaCo - Excelência Tecnológica

EximiaCo - Excelência Tecnológica

Күн бұрын

Em muitos casos, paralelizar a execução de código em aplicações .NET é uma excelente alternativa para melhorar a performance. Mais que isso, é responsabilidade na utilização de recursos.
Nesse vídeo, exploramos um pequeno exemplo comparando ganhos utilizando Thread, ThreadPool, TPL e CUDA.
Post original (em inglês):
www.eximiaco.t...
Os drops da EximiaCo, em áudio, estão disponíveis nas principais plataformas:
Spotify
open.spotify.c....
Apple Podcasts
podcasts.apple....
Deezer
www.deezer.com...

Пікірлер
@kevinallen4872
@kevinallen4872 4 жыл бұрын
Elemar, por favor continue com os vídeos... difícil ter conteúdo de qualidade e com uma didática tão boa assim.
@FFragoso
@FFragoso 5 ай бұрын
KCARALHO QUE INCRIVEL ESSA AULA!!!
@rnssouza14
@rnssouza14 3 жыл бұрын
Parabéns Elemar! Excelente conteúdo. Sem dúvida um dos melhores canais. Continue assim sempre.
@felipeoriani
@felipeoriani 4 жыл бұрын
Muito bom o vídeo Elemar. O uso de Tasks salvaram parte de projeto que trabalhei! Tinhamos problemas na implementação com Threads e as Tasks resolveram. Se possível, faça um vídeo mostrando um pouco sobre CUDA, parece ser bem interessante! Parabéns pelo trabalho. Abs
@rezendemarcio
@rezendemarcio 4 жыл бұрын
Conteúdo excelente Elemar! Estou aprendendo muito com seus vídeos de otimização de performance em .NET. Tomei a liberdade de criar um repositório no GitHub com o seu código (créditos mantidos). Continue com os vídeos!
@destinoeuropacomvictor909
@destinoeuropacomvictor909 4 жыл бұрын
Excelente, muito bom encontrar um canal com esse nível de conteúdo. Parabéns Elemar.
@WesleySilva-dt1xf
@WesleySilva-dt1xf 4 жыл бұрын
Vídeo muito bom e sempre Elemar Jr compartilhando dicas super interessante sobre programação. Parabéns!
@hectorfigueroa9827
@hectorfigueroa9827 4 жыл бұрын
Mito, lenda, unicórnio rsrsrs brincadeiras a parte muito bom parabéns
@rafaelferreiraalves2258
@rafaelferreiraalves2258 4 жыл бұрын
Top , parabéns pelo vídeo.Estou estudando bastante pra certificação e é muito dificil achar videos desse tema (Thread, ThreadPool, task, async) em portugues. Otimo video
@kelvimartinsr
@kelvimartinsr 4 жыл бұрын
Muito bom mesmo, pode continuar com esse conteúdo tão raro de se encontrar hoje em dia
@hpscode
@hpscode 4 жыл бұрын
Muito bom o vídeo, fica como sugestão fazer um vídeo sobre tasks em projeto web api e quando devemos usar. Um detalhe que faltou, no caso da performance melhorar após a troca de thread para threadPool e novas implementações, foi melhorado por que não há a necessidade que criar mais a thread e isso impacta na performance, criar thread e custoso, usando tasks você não precisa criar a thread e é por isso que melhora.
@kkhunternn
@kkhunternn 2 жыл бұрын
Muito bom, parabéns.
@codigo_reverso
@codigo_reverso 4 жыл бұрын
Fala Elemar, joia?! As vezes, quando eu preciso de um controle de estado *externo* em relação à tarefa, eu uso o BackgroundWorker Ela permite que outro código externo tenha controle total sobre a tarefa, podendo parar, pausar, obter informações de dentro dela como progresso e até mesmo dados por exemplo, dentre outras funcionalidades... Ótimo conteúdo!
@JulianoTiagoRinaldi
@JulianoTiagoRinaldi 4 жыл бұрын
Sensacional sensacional. Ótima didática ótimo conteúdo.
@dilowagner
@dilowagner 4 жыл бұрын
Cara, como que alguem pode dar deslike em um video desse? Parabens Elemar, e muito obrigado por compartilhar seu conhecimento com a gente!
@EusouFeioEdai
@EusouFeioEdai 2 жыл бұрын
"Cara, como que alguem pode dar deslike em um video desse?" R: Programador Java. 🤣🤣🤣🤣
@simpleandsolid
@simpleandsolid 4 жыл бұрын
Muito bom, parabéns pelo vídeo.
@MrAlexking01
@MrAlexking01 4 жыл бұрын
Parabéns! Ótimo vídeo!
@lestgotrader3275
@lestgotrader3275 Жыл бұрын
Muito bom e explicativo
@DanielOliveira-vh4ye
@DanielOliveira-vh4ye 4 жыл бұрын
Excelente conteúdo
@car-san-san
@car-san-san 4 жыл бұрын
Elemar Júnior parabéns pelo canal. Admiro muito seu trabalho. Sei que não é algo relacionado ao vídeo mas queria saber se você tem algumas dicas para quem está começando em .Net.
@AlbertoMonteiro
@AlbertoMonteiro 4 жыл бұрын
Mais um vídeo show!!
@Lilica9767
@Lilica9767 3 жыл бұрын
excelente video le´ts have fun
@ricardovicentini
@ricardovicentini 4 жыл бұрын
Muito, muito, muito, obrigado mesmo!!!!
@felipenervo4288
@felipenervo4288 4 жыл бұрын
Excelente conteúdo!
@hdrezei
@hdrezei 4 жыл бұрын
Quem sabe faz ao vivo. Elemar Jedi!
@WesleyTenorio
@WesleyTenorio 4 жыл бұрын
Muito bom
@LBarcelosM
@LBarcelosM 4 жыл бұрын
Parabéns pelo vídeo, muito bom. Eu ainda tenho uma dúvida na questão de processo assíncrono, se eu tenho uma execução que tem vários métodos que são executados sequencialmente com aync Task e await para "esperar" e "chamar" os próximos (em Asp.Net Core por exemplo, o Controller chama um método no service que chama um método no Repository que chama um método no DbContext), eu executo tudo na Thread principal? Não entendo bem o ganho em usar este tipo de abordagem em um serviço Asp.Net Core conforme recomendado pela Microsoft já que tudo será meio que "sequencial" e um "espera" o fim da execução do outro para retornar por exemplo.
@apbertoletti
@apbertoletti 4 жыл бұрын
Confesso que também tenho esta dúvida... @Elemar, seria legal você explicar esta diferença com mais uma demo em vídeo.
@deniscapeto9740
@deniscapeto9740 3 жыл бұрын
A grade vantagem dessa "espera" que você diz usando o async await é que embora haja a espera, isso não é síncrono, ou seja, essa thread não espera a resposta do banco de dados ou uma API externa retornar para continuar a execução. O que acontece é que essa Task é delegada para o ThreadPool, que usa uma thread para fazer a chamada ao banco de dados e depois fica livre para executar qualquer outra Task. Quando o banco de dados retornar, uma outra thread do ThreadPool pode continuar a execução do código. Espero ter ajudado.
@JulianoTiagoRinaldi
@JulianoTiagoRinaldi 4 жыл бұрын
Elemar, eu tenho uma AMD Radeon R9 290X. Tem alguma biblioteca para está placa de vídeo? Estudei que Cuda é para algumas placas NVidia. Tenho interesse de cálculos de redes neurais também. Consegue me ajudar ?
@EximiaCo
@EximiaCo 4 жыл бұрын
Use C++ AMP
@dsfgato
@dsfgato 4 ай бұрын
ola pessoal. infelizmente, o link para o artigo em ingles esta fora fo ar. onde consigo encontra-lo?
@xandaofe
@xandaofe 4 жыл бұрын
Õtimo conteúdo
@guilhermecaixeta8080
@guilhermecaixeta8080 4 жыл бұрын
Muito bom.
@GabrielFaraday
@GabrielFaraday 4 жыл бұрын
Muito bom elemar, uma dúvida, digamos que eu tenha 5 processamentos para serem feitos em paralelo e preciso aguardar todos finalizarem pra prosseguir. Usar tasks criadas "na mão" e usar um wait ALL seria uma boa abordagem?
@EduardoSpaki
@EduardoSpaki 4 жыл бұрын
Boa Elemar! Aproveitando o tema, gostaria de levantar duas questões: 1-) ao meu ver, em processos de IO, como consumir uma API, acesso a disco etc... abriria caminho para ter mais threads do que núcleos disponíveis no processador, concorda? (mesmo porque, o próprio SO lida com centenas de threads a mais de diversas aplicações e para gerenciar a si próprio, do que o número de núcleos disponíveis). 2-) Como você mesmo disse, há muitas coisas na Internet sobre o tema, então gostaria de levantar uma das questões que andei lendo: Dizem que usa-se thread para processos longos (ex windows service, algum processo de monitoramento que não necessariamente tem um fim), e Tasks para processos de rápida conclusão (algoritmos de cálculo, computação etc.). Concorda?
@deniscapeto9740
@deniscapeto9740 3 жыл бұрын
1 - Isso mesmo. Basicamente para processos que fazem I/O podem criar mais threads do que núcleos de CPU, mas de qualquer forma, tem que ter ponderação. Por exemplo, por que não criar 1000 threads? porque há um maior consumo de memória, e há o overhead do gerenciamento dessas threads, pelo scheduler. Já processos que serão processados pela CPU mesmo, não tem vantagem ter mais threads do que núcleos de CPU. 2 - Não vejo dessa forma. Task são basicamente códigos que serão executados pelo ThreadPool por uma thread. Se você criar uma Task para um processo longo, essa task será executada por uma thread do Threadpool. Único ponto é que como o ThreadPool tem um número limitado de thread, se você tiver muitos processos longos rodando no threadpool, pode não ser uma boa. Mas no .NET para tasks que fazem I/O, pode user o threadpool tranquilo porque a thread não fica blockada enquanto uma request não retorna por exemplo.
@murillomachado9925
@murillomachado9925 4 жыл бұрын
Resumo: 22 minutos para mostrar como não fazer paralelismo e no final apresentar um recurso que existe desde 2010.
@elemarjr
@elemarjr 4 жыл бұрын
Obrigado pelo feedback, @Murillo
@elemarjr
@elemarjr 4 жыл бұрын
Note entretanto que todo conteúdo mostrado está no título do vídeo.
@elemarjr
@elemarjr 4 жыл бұрын
Em tempo, se tiver uma forma diferente de implementar a solução, mais atualizada e superior, fico feliz em atualizar a publicação.
Processando arquivos grandes (CSV) em .NET
18:22
EximiaCo - Excelência Tecnológica
Рет қаралды 8 М.
Pequenas mudanças no código, grandes ganhos (10x) na performance em aplicações .NET
20:33
EximiaCo - Excelência Tecnológica
Рет қаралды 6 М.
Что-что Мурсдей говорит? 💭 #симбочка #симба #мурсдей
00:19
Desenvolvimento em C# - Conceitos Básicos de Threads
15:35
Abre Chaves
Рет қаралды 6 М.
Melhorando a performance de aplicações .NET com "Value Types" bem implementados
11:26
EximiaCo - Excelência Tecnológica
Рет қаралды 5 М.
Obsessão por tipos primitivos
18:50
EximiaCo - Excelência Tecnológica
Рет қаралды 6 М.
Enumeráveis e LINQ, por baixo do capô
23:43
EximiaCo - Excelência Tecnológica
Рет қаралды 4,4 М.
Entendendo a área de memória conhecida como Stack
17:36
EximiaCo - Excelência Tecnológica
Рет қаралды 6 М.
Descomplicando CQRS
14:02
EximiaCo - Excelência Tecnológica
Рет қаралды 35 М.
Como o Garbage Collector (GC) afeta a performance em .NET: Validação de CPF
21:44
EximiaCo - Excelência Tecnológica
Рет қаралды 6 М.