Junior — Middle
Czy wszystkie goroutines domyślnie muszą uruchamiać się jednocześnie i równolegle?
sobes.tech AI
Odpowiedź od AI
Nie, nie wszystkie goroutine muszą domyślnie uruchamiać się jednocześnie i równolegle. Goroutines to lekkie wątki, które są planowane przez planistę Go.
Gdy uruchamiasz kilka goroutine, mogą one działać kolejno lub równolegle, w zależności od dostępnej liczby wątków systemowych (GOMAXPROCS) i aktualnego obciążenia.
Domyślnie, jeśli GOMAXPROCS jest równe 1, goroutine będą wykonywać się konkurencyjnie, ale nie równolegle — to znaczy, przełączanie między nimi odbywa się na poziomie planisty, ale tylko jedna jest wykonywana w tym samym czasie.
Aby osiągnąć prawdziwy paralelizm, należy zwiększyć GOMAXPROCS (zwykle do liczby rdzeni procesora). Wtedy kilka goroutine może działać jednocześnie na różnych rdzeniach.