Sobes.tech
Middle+

Select operatörü birkaç kanaldan nasıl okuma yapar?

sobes.tech yapay zeka

AI'dan gelen yanıt

Go'da, select operatörü, birkaç hazır (ready) kanal varsa rastgele birini seçer. Eğer hiçbiri hazır değilse, default olmadan select bloklanır.

Birden fazla kanaldan okuma sırası sabit değildir ve garanti edilmez. Bu, kilitlenmeleri önlemek ve adil dağılımı sağlamak için yapılmıştır.

Örnek:

select {
case msg1 := <-chan1:
    fmt.Println("chan1'den alındı:", msg1)
case msg2 := <-chan2:
    fmt.Println("chan2'den alındı:", msg2)
default:
    fmt.Println("Hazır kanal yok")
}

Eğer hem chan1 hem de chan2 hazırsa, Go rastgele birini seçecektir.