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

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

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

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

sobes.tech AI

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

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

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

package main

import (
    "fmt"
    "time"
)

func worker(ch chan string) {
    time.Sleep(time.Second)
    ch <- "готово"
}

func main() {
    ch := make(chan string)
    go worker(ch) // запуск горутины
    msg := <-ch    // ожидание сообщения из канала
    fmt.Println(msg)
}

Для управления временем жизни горутин и их отмены часто используют контексты (context.Context).

Таким образом, управление горутинами в Go — это запуск с go, коммуникация через каналы и координация через контексты.