Junior — Middle
Программалоо тилинде горутинадар ортосундагы өз ара аракеттенүү кандай жүргүзүлөт?
sobes.tech AI
AIден жооп
Go тилинде, goroutine'лердин ортосундагы өз ара аракеттешүү көбүнчө каналдар (channels) аркылуу жүргүзүлөт. Каналдар goroutine'лердин ортосунда маалыматтарды коопсуз өткөрүүгө мүмкүндүк берет, синхрондоштуруу жана билдирүү алмашууну камсыз кылат.
Канал колдонуу мисалы:
package main
import (
"fmt"
)
func worker(ch chan string) {
ch <- "дайын"
}
func main() {
ch := make(chan string)
go worker(ch)
msg := <-ch
fmt.Println(msg)
}
Каналдардан тышкары, sync пакети аркылуу mutex сыяктуу башка синхрондоштуруу механизмдери да колдонулушу мүмкүн, бирок каналдар Go'до goroutine'лердин ортосунда байланыштын идиоматикалык жолу катары саналат.