Назад к вопросам
Junior — Middle
75
Каким образом реализуется асинхронность в языке Go?
Ответ от нейросети
sobes.tech AI
В Go асинхронность реализуется с помощью горутин (goroutines) — легковесных потоков, которые запускаются с помощью ключевого слова go. Горутину можно запустить для выполнения функции параллельно с основным потоком.
Для синхронизации и обмена данными между горутинами используются каналы (channels), которые позволяют безопасно передавать данные и координировать выполнение.
Пример:
package main
import (
"fmt"
"time"
)
func sayHello() {
fmt.Println("Hello from goroutine")
}
func main() {
go sayHello() // запускаем горутину
time.Sleep(time.Second) // ждем, чтобы горутина успела выполниться
fmt.Println("Main function finished")
}
Таким образом, горутины позволяют писать асинхронный код просто и эффективно, не заботясь о низкоуровневом управлении потоками.