Sobes.tech
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 ҳисобида мешаванд.