Sobes.tech
Back to questions
Junior — Middle
77

Каким образом осуществляется управление несколькими потоками выполнения в языке Go?

Companies where asked
Эрливидео

Answer from AI

sobes.tech AI

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

Для синхронизации и обмена данными между горутинами часто используют каналы (channels), которые обеспечивают безопасную передачу данных и позволяют избежать гонок.

Пример запуска двух горутин:

package main

import (
    "fmt"
    "time"
)

func say(s string) {
    for i := 0; i < 3; i++ {
        fmt.Println(s)
        time.Sleep(100 * time.Millisecond)
    }
}

func main() {
    go say("world") // запускаем горутину
    say("hello")   // выполняется в основном потоке
}

В этом примере функция say вызывается в отдельной горутине, что позволяет выполнять две задачи параллельно.