Sobes.tech
Назад к вопросам
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.