Todas as goroutines devem ser iniciadas simultaneamente e em paralelo por padrão?
sobes.tech IA
Resposta da IA
Não, nem todos os goroutines são obrigados a iniciar-se ao mesmo tempo e em paralelo por padrão. Os goroutines são threads leves que são agendados pelo planificador do Go.
Quando você inicia vários goroutines, eles podem ser executados sequencialmente ou em paralelo, dependendo do número de threads do sistema disponíveis (GOMAXPROCS) e da carga atual.
Por padrão, se GOMAXPROCS for igual a 1, os goroutines serão executados de forma concorrente, mas não em paralelo — ou seja, a troca entre eles ocorre ao nível do agendador, mas apenas um é executado de cada vez.
Para alcançar paralelismo real, é necessário aumentar GOMAXPROCS (normalmente igual ao número de núcleos do processador). Assim, vários goroutines poderão ser executados simultaneamente em diferentes núcleos.