Middle
Kanal ile çalışırken paniği nasıl tetiklersiniz? Nil-kanal ve kapatılmış kanal ile işlemler sırasında ne olur?
sobes.tech yapay zeka
AI'dan gelen yanıt
Go'da kanallarla çalışırken panik şu durumlarda ortaya çıkar:
- Kapanmış bir kanala değer göndermek (
chan <- value) panik oluşturur. - Zaten kapanmış bir kanalı kapatmak (
close(chan)) panik oluşturur.
Nil-kanallarla ilgili olarak:
- Nil-kanallarla gönderme ve alma işlemleri sonsuza kadar bloklanır (deadlock), ancak panik oluşturmaz.
Örnek:
var ch chan int // nil-kanal
// <-ch // sonsuza kadar bloklanır
// ch <- 1 // sonsuza kadar bloklanır
ch = make(chan int)
close(ch)
// ch <- 1 // panic: kapalı kanala gönderim
close(ch) // panic: kapalı kanalı tekrar kapatma