Sobes.tech
Junior — Middle

Чӣ гуна ҳамкории байни goroutine-ҳо дар Go амалӣ мешавад?

sobes.tech AI

Ҷавоб аз AI

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

Мавзӯъҳои асосӣ:

  • Канал бо make(chan Тип) сохта мешавад.
  • Ба канал фиристодан: ch <- арзиш.
  • Аз канал гирифтани: арзиш := <-ch.
  • Каналҳо метавонанд бо буфер ё бе буфер бошанд.

Масалан:

func main() {
    ch := make(chan string)

    go func() {
        ch <- "салом аз goroutine"
    }()

    msg := <-ch
    fmt.Println(msg)
}

Бинобар ин, каналҳо таъмин мекунанд, ки байни goroutines параллел бехатар ва қулай ҳамкорӣ сурат гирад, бе ниёз ба истифодаи mutexҳо ё механизмҳои дигар барои бастани.