Sobes.tech
Назад к вопросам
Junior — Middle
75

Каким образом реализована и управляется работа множества горутин в приложении?

Компании, где спрашивали
Самокат Тех

Ответ от нейросети

sobes.tech AI

В Go горутины — это легковесные потоки, управляемые рантаймом Go, а не операционной системой. Когда в приложении создаётся множество горутин, Go-рантайм планирует их выполнение на ограниченном числе системных потоков (M), используя модель M:N (M системных потоков на N горутин).

Планировщик Go распределяет горутины по потокам, переключая контекст очень быстро и эффективно. Это позволяет запускать тысячи и даже миллионы горутин с низкими накладными расходами по памяти и времени.

Пример создания горутины:

func sayHello() {
    fmt.Println("Hello from goroutine")
}

func main() {
    go sayHello() // запуск горутины
    time.Sleep(time.Second) // даём время горутине выполниться
}