Junior — Middle
Чӣ гуна ҳамкории байни goroutine-ҳо дар забони барномасозӣ амалӣ мешавад?
sobes.tech AI
Ҷавоб аз AI
Дар забони Go, ҳамкории байни goroutines одатан тавассути каналҳо (channels) анҷом дода мешавад. Каналҳо имкон медиҳанд, ки маълумотҳо бо бехатар байни goroutines интиқол дода шаванд, ҳамзамон синхронӣ ва мубодилаи паёмҳоро таъмин мекунанд.
Масалан барои истифодаи канал:
package main
import (
"fmt"
)
func worker(ch chan string) {
ch <- "тайёр"
}
func main() {
ch := make(chan string)
go worker(ch)
msg := <-ch
fmt.Println(msg)
}
Илова бар каналҳо, метавон механизмҳои дигар барои синхронӣ, масалан mutex аз пакети sync, истифода бурд, аммо каналҳо ҳамчун усули идиоматикӣ барои муошират байни goroutines дар Go ҳисобида мешаванд.