Sobes.tech
Senior

Para onde vão as goroutines ao serem criadas — para a fila local ou global do agendador Go?

sobes.tech IA

Resposta da IA

Ao criar uma goroutine em Go, ela é colocada na ** fila local do agendador (local run queue)**, que pertence a um M específico (máquina, thread do sistema).

O runtime do Go usa um modelo M:N, onde M são os threads do sistema e G são as goroutines. Cada M tem sua própria fila local de goroutines para execução. Se a fila local ficar cheia ou vazia, o agendador pode equilibrar as goroutines entre a fila local e a global.

Assim, a nova goroutine é inicialmente colocada na fila local do agendador, o que permite usar eficientemente o cache do processador e reduzir os custos de troca de contexto.