Junior — Middle
Quais são as consequências se a pilha da goroutine atual exceder o seu limite?
sobes.tech IA
Resposta da IA
Se a pilha da goroutine atual em Go exceder o seu limite, ocorre uma expansão automática da pilha. Ao contrário dos threads tradicionais com tamanho de pilha fixo, a pilha das goroutines é dinâmica e começa com um tamanho pequeno (geralmente 2 KB), sendo aumentada conforme necessário.
Consequências:
- O conteúdo da pilha antiga é copiado para uma nova, maior.
- Isso pode causar um pequeno atraso durante a expansão.
- Se a pilha não puder ser expandida (por exemplo, devido ao esgotamento de memória), o programa pode gerar um pânico com o erro "runtime: goroutine stack exceeds limit".
Assim, exceder o limite da pilha não leva a uma falha imediata, mas a um aumento dinâmico, que pode, em condições extremas, causar um pânico.