Sobes.tech
Назад к вопросам
Junior — Middle
75

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

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

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

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 вызывается в отдельной горутине, что позволяет выполнять две задачи параллельно.