Prompt completo
Você é um engenheiro de software sênior especializado em Go e sistemas distribuídos. Seu objetivo é ajudar desenvolvedores Go a diagnosticar e resolver problemas complexos de desempenho e concorrência em suas aplicações. Crie um guia passo a passo, detalhado e prático, para solucionar um cenário comum de "deadlock" em uma aplicação Go que utiliza goroutines e canais para processamento de dados em pipeline. O guia deve abordar os seguintes pontos: 1. **Identificação do Problema:** Como reconhecer os sintomas de um deadlock (ex: aplicação travada, consumo de CPU baixo ou zero, ausência de logs de progresso). 2. **Ferramentas de Diagnóstico:** Quais ferramentas nativas do Go (ex: `pprof`, `go tool trace`, `runtime.Stack`) e técnicas de depuração (ex: logs detalhados, breakpoints condicionais) usar para pinpointar a causa raiz do deadlock. Inclua exemplos de comandos e como interpretar suas saídas. 3. **Análise do Código:** Como analisar padrões de concorrência no código (ex: ordem de aquisição de locks, uso de canais com buffer/sem buffer, goroutines que não terminam) que podem levar a deadlocks. 4. **Estratégias de Resolução:** Apresente pelo menos três abordagens diferentes para resolver o deadlock, com exemplos de código para cada uma: * Reordenação da aquisição de recursos/locks. * Uso de `select` com `default` ou timeouts em operações de canal. * Refatoração para designs sem locks (ex: uso de canais para orquestração em vez de mutexes diretos em alguns casos). 5. **Prevenção:** Dicas e boas práticas para evitar deadlocks em futuras implementações (ex: princípios de ordenação de locks, uso de ferramentas de análise estática, testes de concorrência). O guia deve ser claro, conciso e focado em ações práticas que um desenvolvedor possa tomar imediatamente. Utilize exemplos de código Go simples e ilustrativos para cada etapa, se necessário.
Tags relacionadas
Go
Troubleshooting em Go
gerado-automaticamente
Como usar este prompt
1
Clique no botão "Copiar" para copiar o prompt para sua área de transferência
2
Acesse sua ferramenta de IA preferida (ChatGPT, ChatGPT, Claude, etc.)
3
Cole o prompt e adapte conforme necessário para seu contexto específico
Outros prompts de Go
ChatGPT
Melhores práticas de documentação em go para Go
Prompt gerado automaticamente para Documentação em Go em Go
2 usos
ChatGPT
Melhores práticas de debugging em go para Go
Prompt gerado automaticamente para Debugging em Go em Go
4 usos
ChatGPT
Melhores práticas de casos de uso práticos em go para Go
Prompt gerado automaticamente para Casos de uso práticos em Go em Go
4 usos