Back to questions
Junior — Middle
95
Каким образом осуществляется управление и распределение задач между горутинами в языке Go?
Companies where asked
Эрливидео
Самокат Тех
Answer from AI
sobes.tech AI
В языке Go управление и распределение задач между горутинами осуществляется планировщиком (scheduler), встроенным в рантайм Go. Горутины — это легковесные потоки, которые запускаются с помощью ключевого слова go.
Планировщик Go распределяет горутины по системным потокам (OS threads) и управляет их выполнением, обеспечивая конкурентность и параллелизм. Он использует модель M:N, где M — количество системных потоков, а N — количество горутин.
Пример создания горутины:
func sayHello() {
fmt.Println("Hello from goroutine")
}
func main() {
go sayHello() // запускает горутину
time.Sleep(time.Second) // ждем, чтобы горутина успела выполниться
}
Таким образом, разработчик просто запускает горутину, а рантайм Go сам распределяет задачи и переключается между ними.