Middle
Kanal ilə işləyərkən panik yaratmaq necə olar? Nil-kanal və bağlanmış kanal ilə əməliyyatlar zamanı nə baş verir?
sobes.tech Süni İntellekt
AI-dan cavab
Go-da kanallarla işləyərkən panika aşağıdakı hallarda baş verir:
- Bağlanmış kanala dəyər göndərmək (
chan <- value) panikaya səbəb olur. - Artıq bağlanmış kanalı bağlamaq (
close(chan)) panikaya səbəb olur.
Nil-kanallara gəldikdə:
- Nil-kanalla göndərmə və qəbul əməliyyatları həmişə bloklanır (deadlock), amma panikaya səbəb olmur.
Nümunə:
var ch chan int // nil-kanal
// <-ch // həmişə bloklanır
// ch <- 1 // həmişə bloklanır
ch = make(chan int)
close(ch)
// ch <- 1 // panic: bağlanmış kanala göndərmə
close(ch) // panic: artıq bağlanmış kanalı bağlamaq