Sobes.tech
Senior

Goroutine'lar arasında məlumatların ötürülməsi üçün nə istifadə edilə bilər?

sobes.tech Süni İntellekt

AI-dan cavab

Go dilində goroutine'lar arasında məlumat ötürmək üçün adətən kanallar (channels) istifadə olunur. Kanallar təhlükəsiz sinxronizasiya və məlumat ötürülməsini təmin edir, bu da goroutine'ların açıq kilidlər olmadan dəyərləri mübadilə etməsinə imkan verir.

Kanal istifadəsinin nümunəsi:

ch := make(chan int)

// Goroutine-də məlumat göndərmək
go func() {
    ch <- 42
}()

// Məlumat almaq
value := <-ch
fmt.Println(value) // 42

Kanalardan başqa, sync paketindən mutex ilə ümumi yaddaş istifadə oluna bilər, lakin kanallar Go-da daha idiomatiktir.