Sobes.tech
Senior

Какво може да се използва за прехвърляне на данни между горутините?

sobes.tech AI

Отговор от AI

За пренос на данни между горутините в Go обикновено се използват канали (channels). Каналите осигуряват безопасна синхронизация и пренос на данни, позволявайки на горутините да обменят стойности без явни блокировки.

Пример за използване на канал:

ch := make(chan int)

// Изпращане на данни в горутина
go func() {
    ch <- 42
}()

// Получаване на данни
value := <-ch
fmt.Println(value) // 42

Освен каналите, може да се използва споделена памет със синхронизация чрез mutex от пакета sync, но каналите се считат за по-идиоматичен начин в Go.