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

Могли бы вы объяснить, что означает запуск и управление горутинами в языке Go?

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

sobes.tech AI

В языке Go горутины — это лёгкие потоки выполнения, которые управляются рантаймом Go. Запуск горутины позволяет выполнять функцию или метод параллельно с основным потоком, не блокируя его.

Для запуска горутины используется ключевое слово go перед вызовом функции:

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

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

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

Пример использования канала для ожидания завершения горутины:

func worker(done chan bool) {
    fmt.Println("Работа горутины")
    done <- true // сигнал о завершении
}

func main() {
    done := make(chan bool)
    go worker(done)
    <-done // ожидание сигнала
    fmt.Println("Горутина завершена")
}

Таким образом, запуск и управление горутинами — это способ организовать конкурентное выполнение кода с помощью лёгких потоков и механизмов синхронизации.