Sobes.tech
Назад к вопросам
Middle
4

Что такое горутина и чем она отличается от потока операционной системы?

Компании, где спрашивали
Effective Technologies

Ответ от нейросети

sobes.tech AI

Горутина — это легковесный поток выполнения в языке Go, управляемый рантаймом Go, а не операционной системой. В отличие от потоков ОС, горутины занимают гораздо меньше памяти (обычно несколько килобайт стека, который может динамически расширяться) и создаются намного быстрее.

Основные отличия:

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

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

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

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