Sobes.tech
Назад к вопросам
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")
}

Таким образом, горутины позволяют писать асинхронный код просто и эффективно, не заботясь о низкоуровневом управлении потоками.