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.