Back to questions
Junior — Middle
78
Каким образом реализована и управляется работа множества горутин в приложении?
Companies where asked
Самокат Тех
Answer from AI
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) // даём время горутине выполниться
}