Sobes.tech
Middle+

Hangi durumlarda kanal okuması sonsuza kadar engellenir? Nil kanala yazma sırasında ne olur? Kapanmış bir kanala yazma sırasında ne olur?

sobes.tech yapay zeka

AI'dan gelen yanıt

  • Kanaldan okuma, kanal boşsa ve kimse içine yazmayı planlamıyorsa (örneğin, tüm gönderenler kapatılmış veya yoksa) sonsuza kadar engellenir.

  • Nil-kanala yazma (nil ile eşit olan bir kanal) her zaman sonsuza kadar engellenir, çünkü nil-kanal başlatılmamıştır ve veri alamaz.

  • Kapalı bir kanala yazmak, Go'da bir panik (panic) ile sonuçlanır, çünkü bu yasaktır ve çalışma zamanı hatası olarak kabul edilir.

Örnek:

var ch chan int // nil-kanal

// <-ch // nil-kanaldan okuma sonsuza kadar engellenir

// ch <- 1 // nil-kanala yazma sonsuza kadar engellenir

ch = make(chan int)
close(ch)
// ch <- 2 // panic: kapalı kanala gönderim