Назад к вопросам
Junior — Middle
79
Какие процессы запустятся и как будет происходить создание новой горутины в Go?
Компании, где спрашивали
Indrive
Ответ от нейросети
sobes.tech AI
В Go создание новой горутины происходит с помощью ключевого слова go, после которого вызывается функция. При этом создаётся легковесный поток выполнения — горутина, который планировщик Go запускает параллельно с другими.
Процесс создания горутины включает:
- Выделение небольшой стека памяти для горутины (стек в Go динамический и может расти).
- Регистрация горутины в планировщике Go.
- Планировщик распределяет горутины по системным потокам (M) и процессорам (P).
Пример:
func sayHello() {
fmt.Println("Hello from goroutine")
}
func main() {
go sayHello() // запускает новую горутину
time.Sleep(time.Second) // чтобы горутина успела выполниться
}
Таким образом, создание горутины — это быстрое и лёгкое создание параллельного потока выполнения, управляемого рантаймом Go.