Sobes.tech
Senior

Gorutina nədir və sistem axınından necə fərqlənir?

sobes.tech Süni İntellekt

AI-dan cavab

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

Основные отличия горутины от системного потока:

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

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

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

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