Назад к вопросам
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, коммуникация через каналы и координация через контексты.