Back to questions
Junior — Middle
89
Могли бы вы объяснить, что означает запуск и управление горутинами в языке Go?
Answer from AI
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("Горутина завершена")
}
Таким образом, запуск и управление горутинами — это способ организовать конкурентное выполнение кода с помощью лёгких потоков и механизмов синхронизации.