Sobes.tech
Junior — Middle

Qual é o número máximo de threads permitido num único processo?

sobes.tech IA

Resposta da IA

No Go, o número de goroutines num processo é praticamente ilimitado pelo próprio idioma — a restrição é imposta pelos recursos do sistema operativo e pela memória disponível.

Goroutine é uma thread leve, gerenciada pelo runtime do Go, e podem ser criadas dezenas e centenas de milhares sem deterioração significativa do desempenho.

No entanto, os threads do sistema (threads do SO), nos quais as goroutines operam, são limitados pelos recursos do SO e pelas configurações (por exemplo, limites no número de threads no núcleo do SO).

Portanto, em um processo Go, pode-se ter muitas goroutines, mas o número máximo real depende de:

  • Memória RAM disponível
  • Restrições do SO (por exemplo, ulimit no Linux)
  • Configuração do runtime (por exemplo, GOMAXPROCS)

De modo geral, para a maioria das aplicações, o limite no número de goroutines é muito alto e não constitui um gargalo.