Junior — Middle
107
Go тілінде екі горутин арасында ақпарат алмасуды қалай жүзеге асыруға болады?
Сұралған компаниялар
Кадровое агентство BWG
AI-дан жауап
sobes.tech AI
Go тілінде екі горутин арасындағы ақпарат алмасу әдетте арналар (channels) көмегімен жүзеге асырылады. Арналар қауіпсіз түрде деректерді горутиндар арасында жеткізуге және олардың жұмысын синхрондауға мүмкіндік береді.
Мысал ретінде арна арқылы алмасу:
package main
import (
"fmt"
)
func sender(ch chan<- string) {
ch <- "Sender-ден сәлем"
}
func receiver(ch <-chan string) {
msg := <-ch
fmt.Println("Алушы хабарламаны алды:", msg)
}
func main() {
ch := make(chan string)
go sender(ch)
go receiver(ch)
// Горутиндар аяқталғанша күтеміз
var input string
fmt.Scanln(&input)
}
Мұнда sender арнаға жол жібереді, ал receiver оны оқиды. Арналар деректер алмасуды қауіпсіз етеді, мьютекстер немесе басқа синхрондау механизмдерін қолданбай.