Sobes.tech
Senior

Барои интиқоли маълумот байни goroutine-ҳо чӣ истифода бурда мешавад?

sobes.tech AI

Ҷавоб аз AI

Барои интиқоли маълумот байни goroutine-ҳо дар Go, одатан каналҳо (channels) истифода мешаванд. Каналҳо бехатарии ҳамоҳангсозӣ ва интиқоли маълумотро таъмин мекунанд, ки имкон медиҳад goroutine-ҳо арзишҳоро бе бастани ошкоро мубодила кунанд.

Масалан, истифодаи канал:

ch := make(chan int)

// Иҷрои маълумот дар goroutine
go func() {
    ch <- 42
}()

// Гирифтани маълумот
value := <-ch
fmt.Println(value) // 42

Илова бар каналҳо, метавон мемори умумиро бо ҳамоҳангсозӣ тавассути mutex аз пакети sync истифода бурд, аммо каналҳо ҳамчун роҳи бештар идиоматик дар Go ҳисоб мешаванд.