
Primitivas de sincronização
sync.Mutex, RWMutex, Once, Pool, Map, Cond, operações atômicas
1O que é um sync.Mutex em Go?
O que é um sync.Mutex em Go?
Resposta
Um sync.Mutex (mutual exclusion lock) é uma primitiva de sincronização que garante que apenas uma goroutine possa acessar uma seção crítica por vez. Chamar Lock bloqueia até que o mutex esteja disponível, e Unlock o libera para as demais goroutines. Use-o para proteger o acesso concorrente a dados compartilhados.
2O que acontece se esquecermos de chamar Unlock após Lock em um sync.Mutex?
O que acontece se esquecermos de chamar Unlock após Lock em um sync.Mutex?
Resposta
Esquecer Unlock cria um deadlock potencial, pois as demais goroutines esperarão indefinidamente para adquirir o mutex. A boa prática é usar defer para garantir que Unlock será chamado mesmo em caso de panic. Sempre associe Lock e Unlock no mesmo escopo para evitar vazamentos de bloqueio.
3Qual é a principal diferença entre sync.Mutex e sync.RWMutex?
Qual é a principal diferença entre sync.Mutex e sync.RWMutex?
Resposta
O sync.RWMutex permite múltiplas leituras concorrentes via RLock, mas apenas uma escrita exclusiva via Lock. Isso melhora o desempenho em cenários com muitas leituras, pois os leitores não se bloqueiam mutuamente. Use RWMutex quando as leituras forem frequentes e as escritas raras.
Por que usar defer com Unlock em um sync.Mutex?
Quando preferir sync.RWMutex em vez de sync.Mutex?
+19 perguntas de entrevista
Outros temas de entrevista Go
Fundamentos de Go
Estruturas de dados em Go
Interfaces em Go
Tratamento de erros
Goroutines básicas
Channels
Go Modules
Servidor HTTP
Cliente HTTP
Codificação JSON
Database/SQL
Pacote context
Testing
Padrões de concorrência
Frameworks web Go
Design de API REST
gRPC
Reflection
Gerenciamento de memória
Otimização de desempenho
Generics
Go Design Patterns
Microservices
Segurança e autenticação
Docker & Containerization
Kubernetes Basics
Go Avançado
Desenvolvimento de CLI
Domine Go para sua proxima entrevista
Acesse todas as perguntas, flashcards, testes tecnicos, exercicios de code review e simuladores de entrevista.
Comece gratis