Sobes.tech
Back to questions
Middle+
4

Зачем придумали горутины, если есть потоки ОС?

Companies where asked
СБЕРСБЕР

Answer from AI

sobes.tech AI

Горутины в Go были придуманы для более лёгкой и эффективной работы с конкурентностью по сравнению с потоками ОС. Основные преимущества горутин:

  • Легковесность: Горутины занимают гораздо меньше памяти, чем потоки ОС, и их можно создавать тысячи и даже миллионы без существенного потребления ресурсов.
  • Планировщик на уровне языка: Go имеет встроенный планировщик, который эффективно распределяет горутины по потокам ОС, оптимизируя использование CPU.
  • Простота синтаксиса: Запуск горутины — это просто добавление ключевого слова go перед вызовом функции.

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

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

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

Таким образом, горутины позволяют писать конкурентный код проще и эффективнее, чем напрямую управлять потоками ОС.