Go

Goroutines básicas

Goroutines, palavra-chave go, sync.WaitGroup, runtime.GOMAXPROCS, goroutine leaks

20 perguntas de entrevista·
Junior
1

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.

2

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.

3

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.

4

O que acontece se o programa principal terminar antes de uma goroutine concluir?

5

Como o runtime Go gerencia a execução das goroutines?

+17 perguntas de entrevista

Domine Go para sua proxima entrevista

Acesse todas as perguntas, flashcards, testes tecnicos, exercicios de code review e simuladores de entrevista.

Comece gratis