Back to questions
Middle+
4
Горутины работают параллельно или конкурентно?
Companies where asked
Веро Трейс
Answer from AI
sobes.tech AI
Горутины в Go по умолчанию работают конкурентно, а не параллельно. Конкурентность означает, что несколько горутин могут быть запущены и переключаться между собой, но не обязательно выполняются одновременно. Параллелизм же — это одновременное выполнение нескольких горутин на разных ядрах процессора.
Go runtime планирует горутины на системные потоки (M) и использует пул потоков для выполнения. Если у вас несколько ядер и вы установите GOMAXPROCS > 1, то горутины могут выполняться параллельно на разных ядрах.
Пример:
runtime.GOMAXPROCS(4) // разрешаем использовать 4 ядра
go func() {
// горутина 1
}()
go func() {
// горутина 2
}()
Таким образом, горутины — это механизм конкурентного программирования, который при наличии нескольких ядер может обеспечивать и параллелизм.