Sobes.tech
Back to questions
Senior
4

Горутины — что такое, почему эффективнее процессов ОС?

Companies where asked
.wrk

Answer from AI

sobes.tech AI

Горутины — это легковесные потоки выполнения в языке Go, которые управляются рантаймом Go, а не операционной системой. Они позволяют запускать функции параллельно с минимальными затратами на создание и переключение контекста.

Почему эффективнее процессов ОС:

  • Малый размер стека: горутина стартует с небольшим стеком (около 2 КБ), который может динамически расти, в отличие от потоков ОС с фиксированным большим стеком.
  • Быстрое переключение контекста: переключение между горутинами происходит в пространстве пользователя, без обращения к ядру ОС, что значительно быстрее.
  • Масштабируемость: можно запускать тысячи и даже миллионы горутин одновременно, что невозможно с потоками ОС из-за ограничений ресурсов.

Пример создания горутины в Go:

func sayHello() {
    fmt.Println("Hello from goroutine")
}

func main() {
    go sayHello() // запускает горутину
    time.Sleep(time.Second) // ждем, чтобы горутина успела выполниться
}