Concorrência em C# (.NET): Assincronia, Paralelismo e Multithreading
Concorrência em C# (.NET): Assincronia, Paralelismo e Multithreading
Resumo:
As aplicações modernas precisam ser rápidas e responsivas. Os usuários não toleram travamentos, e os sistemas servidores devem processar milhares de requisições simultaneamente. O livro "Concorrência em C# (.NET)" é um guia abrangente sobre todos os aspectos da programação paralela e assíncrona na plataforma .NET, que o ajudará a migrar do código sequencial para soluções concorrentes de alto desempenho.
Sobre o que é este livro?
O livro é construído do simples ao complexo e abrange todos os tópicos principais:
- Fundamentos de multithreading: o que são threads, pools de threads e como trabalhar com eles no .NET.
- Programação assíncrona: imersão profunda no padrão async/await, Task e ValueTask, gerenciamento de contexto de sincronização.
- Task Parallel Library (TPL): loops paralelos, tarefas, classe Parallel e processamento eficiente de dados.
- Sincronização e bloqueios: monitores, mutexes, semáforos, ReaderWriterLockSlim e abordagens lock-free.
- Coleções thread-safe: ConcurrentDictionary, ConcurrentQueue, BlockingCollection e canais (Channels).
- Tratamento de erros e depuração: como capturar exceções em código assíncrono, evitar deadlocks e race conditions.
- Programação reativa: introdução ao Rx.NET e trabalho com fluxos de eventos.
- Técnicas avançadas: Dataflow (TplDataflow), IAsyncEnumerable, paralelismo com Span
e Memory .
Para quem é este livro?
O livro será útil para:
- Desenvolvedores C# que desejam entender como escrever código assíncrono sem erros e vazamentos.
- Arquitetos de software que projetam sistemas de alta carga no .NET.
- Tech leads que desejam implementar as melhores práticas de concorrência em suas equipes.
- Estudantes e juniores que desejam dominar um dos tópicos mais complexos da programação.
Para a leitura, é necessário conhecimento sólido da sintaxe do C# e compreensão básica do funcionamento do sistema operacional.
O que você aprenderá?
- Como usar corretamente async/await para não bloquear a UI e não prejudicar o desempenho do servidor.
- Como paralelizar cálculos em processadores multi-core usando TPL.
- Como compartilhar dados entre threads com segurança, sem risco de corridas e bloqueios mútuos.
- Como testar e depurar código multithread.
- Como construir pipelines de processamento de dados com TPL Dataflow.
- Como evitar antipadrões comuns (por exemplo, "sync over async").
Todos os exemplos de código são válidos para .NET 8 e versões posteriores, incluindo .NET 9. O livro contém diversos exercícios práticos e soluções prontas que podem ser aplicadas imediatamente em projetos reais. Independentemente de você estar escrevendo uma aplicação desktop em WPF, um serviço web em ASP.NET Core ou uma função em nuvem no Azure, o conhecimento deste livro ajudará a tornar seu código mais rápido, estável e escalável.