
Goroutines básicas
Goroutines, palavra-chave go, sync.WaitGroup, runtime.GOMAXPROCS, goroutine leaks
1O que é uma goroutine em Go?
O que é uma goroutine em Go?
Resposta
Uma goroutine é uma função que executa de forma concorrente com outras funções, gerenciada pelo runtime do Go em vez do OS. Ela é extremamente leve (alguns KB de stack inicial) comparada a um thread do OS (vários MB). O scheduler do Go pode multiplexar milhares ou até milhões de goroutines sobre um número limitado de threads do OS, tornando a concorrência muito acessível em Go.
2Como iniciar uma nova goroutine em Go?
Como iniciar uma nova goroutine em Go?
Resposta
A palavra-chave go seguida de uma chamada de função inicia uma nova goroutine. Por exemplo, 'go myFunction()' ou 'go func() { ... }()' para uma função anônima. A goroutine executa imediatamente em paralelo com o código chamador. Atenção: a função principal não aguarda automaticamente que as goroutines lançadas terminem.
3Qual é a principal diferença entre uma goroutine e um thread OS?
Qual é a principal diferença entre uma goroutine e um thread OS?
Resposta
Uma goroutine consome cerca de 2 KB de stack inicial, enquanto um thread OS normalmente requer 1-2 MB. O runtime Go gerencia o scheduling das goroutines no espaço de usuário (M:N scheduling), multiplexando milhares de goroutines sobre alguns poucos threads OS. Isso permite criar milhões de goroutines sem sobrecarregar o sistema, ao contrário dos threads OS que são limitados pelos recursos.
O que acontece se o programa principal terminar antes de uma goroutine concluir?
Como o runtime Go gerencia a execução das goroutines?
+17 perguntas de entrevista
Outros temas de entrevista Go
Fundamentos de Go
Estruturas de dados em Go
Interfaces em Go
Tratamento de erros
Channels
Go Modules
Servidor HTTP
Cliente HTTP
Codificação JSON
Database/SQL
Pacote context
Testing
Padrões de concorrência
Primitivas de sincronização
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