Concorrência em Go (Golang): Um Guia Prático
Concorrência em Go (Golang): Um Guia Prático
Resumo:
O livro «Concorrência em Go (Golang)» é um guia prático completo que o ajudará a dominar um dos tópicos mais poderosos e, ao mesmo tempo, complexos da linguagem de programação Go. A concorrência está incorporada na própria arquitetura do Go e, sem compreendê-la, é impossível criar aplicações eficientes, rápidas e escaláveis. Este livro irá guiá-lo desde os fundamentos até os padrões avançados usados em sistemas de produção.
Sobre o que é este livro
O livro começa com conceitos fundamentais: o que são goroutines e como elas diferem das threads do SO, como funcionam os canais (buffered e unbuffered) e como sincronizar corretamente o acesso a dados usando mutexes e operações atômicas. Você aprenderá a evitar condições de corrida (race condition) e deadlocks. Em seguida, o autor aborda tópicos mais complexos:
- Padrões usando
selecte timeouts - Organização de pipelines de dados
- Gerenciamento de grupos de goroutines com
sync.WaitGroupeerrgroup - Uso de um pool de workers para controlar o paralelismo
- Contextos (context) e cancelamento de operações
- Primitivas de sincronização avançadas:
sync.Once,sync.Pool,sync.Cond - Testes de código concorrente com
go test -race
Para quem é este livro
O livro será útil para:
- Desenvolvedores Go iniciantes que já dominam a sintaxe da linguagem e desejam entender como escrever programas multithread eficientes
- Programadores experientes em outras linguagens (Java, C#, Python) que estão migrando para Go e querem aprender seu modelo único de concorrência
- Desenvolvedores backend que criam serviços de alta carga, microsserviços, servidores web e sistemas de tempo real
- Estudantes e todos que se interessam por programação paralela e desejam aprender as melhores práticas
O que você aprenderá após a leitura
Após estudar o material, você será capaz de:
- Projetar arquiteturas concorrentes corretamente, evitando erros típicos
- Usar eficientemente goroutines e canais para transferência de dados e sincronização
- Escrever código confiável, protegido contra condições de corrida e deadlocks
- Aplicar padrões avançados: fan-in, fan-out, or-done, tee-channel, bridge-channel
- Integrar concorrência em projetos reais usando context e graceful shutdown
- Perfilhar e depurar código concorrente
O livro contém muitos exemplos de código que podem ser executados e modificados imediatamente. Todos os exemplos são acompanhados de comentários e explicações detalhadas. Não é apenas teoria — é um guia prático que se tornará seu manual de referência sobre concorrência em Go.
O autor do livro é Alexei Kuznetsov, desenvolvedor backend sênior com 10 anos de experiência, dos quais os últimos 6 anos ele escreve em Go em projetos de alta carga. Alexei é conhecido por suas palestras em conferências da comunidade Go e por uma série de artigos sobre programação concorrente.
Recommendations
Python e análise de dados
Desenvolvimento de API em PHP: criação de serviços RESTful modernos
Desempenho de aplicações C# (.NET): Otimização e Perfilamento
Desenvolvimento de API em JavaScript (Node.js): guia prático
Compreendendo ECMAScript 6
Projetando aplicações web modernas com ASP.NET Core e Azure