Sobes.tech
Junior — Middle

Tutte le goroutine devono essere avviate contemporaneamente e in parallelo per impostazione predefinita?

sobes.tech AI

Risposta dell'AI

No, non tutti i goroutine sono obbligati a partire contemporaneamente e in parallelo di default. I goroutine sono thread leggeri pianificati dal scheduler di Go.

Quando avvii più goroutine, queste possono essere eseguite in modo sequenziale o parallelo, a seconda del numero di thread di sistema disponibili (GOMAXPROCS) e del carico attuale.

Per impostazione predefinita, se GOMAXPROCS è uguale a 1, le goroutine verranno eseguite in modo concorrente, ma non in parallelo — cioè, il cambio tra di esse avviene a livello del scheduler, ma solo una viene eseguita alla volta.

Per ottenere un vero parallelismo, è necessario aumentare GOMAXPROCS (di solito uguale al numero di core del processore). In questo modo, più goroutine possono essere eseguite contemporaneamente su diversi core.