Senior
Se GOMAXPROCS=2 e dois ciclos infinitos com operações matemáticas estiverem em execução, outras goroutines serão executadas?
sobes.tech IA
Resposta da IA
Se GOMAXPROCS=2, isso significa que o agendador do Go pode usar simultaneamente 2 threads do sistema operativo para executar goroutines.
Se dois ciclos infinitos com operações matemáticas intensivas estiverem em execução, eles ocuparão ambos os threads completamente, pois não fazem chamadas bloqueantes ou operações de entrada/saída.
Como resultado, outras goroutines não poderão obter tempo de CPU, e sua execução será fortemente atrasada ou praticamente parada.
Para resolver essa situação, é necessário reduzir a carga nesses ciclos, adicionar pontos onde as goroutines chamem runtime.Gosched() ou realizem operações bloqueantes, ou aumentar GOMAXPROCS para fornecer mais threads ao agendador.