Sobes.tech
Junior — Middle

Go тилинде маалымат жөнөтүүчү жана кабыл алуучу арасындагы билдирүү алмашуу кандай ишке ашырылат?

sobes.tech AI

AIден жооп

Go тилинде, билдирүү алмашуу жөнөтүүчү жана маалыматтарды кабыл алуучу ортосунда каналдар (channels) аркылуу ишке ашырылат. Каналдар goroutine'лерге коопсуз маалымат алмашууга жана алардын иштөө процесстерин синхрондоштурууга мүмкүндүк берет.

Канал make функциясы аркылуу түзүлөт жана буферленген же буферсиз болушу мүмкүн:

ch := make(chan int)        // буферсиз канал
chBuf := make(chan int, 5)  // буферленген канал, өлчөмү 5

Каналга жөнөтүү:

ch <- 42  // 42 маанисин каналга жөнөтүү

Каналдан алуу:

value := <-ch  // каналдан маанини алуу

Эки goroutine ортосундагы билдирүү алмашуу мисалы:

package main

import (
    "fmt"
    "time"
)

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

    go func() {
        ch <- "Goroutineтен салам"
    }()

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

Мындайча, Go тилиндеги каналдар параллел иштеп жаткан агымдар ортосунда коопсуз жана ыңгайлуу байланыш камсыздайт.