Назад к вопросам
Junior — Middle
76
Каким образом реализована и управляется работа множества горутин в приложении?
Компании, где спрашивали
Самокат Тех
Ответ от нейросети
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) // даём время горутине выполниться
}