Sobes.tech
Middle+

რა პირობებში გაკითხვა არხიდან სამუდამოდ იკეტება? რა მოხდება, თუ ნული-არხში დავწერთ? დახურულ არხში დაწერა რა მოხდება?

sobes.tech AI

პასუხი AI-სგან

  • არხიდან კითხვა ყოველთვის ბლოკდება, თუ არხი ცარიელია და არავინ აპირებს მასში დაწერას (მაგალითად, ყველა გამგზავნი დახურულია ან არ არსებობს).

  • ნილ-არხში დაწერა (არხი, რომელიც ტოლია ნილს) ყოველთვის ბლოკდება სამუდამოდ, რადგან ნილ-არხი არ არის ინიციალიზებული და მონაცემებს ვერ მიიღებს.

  • დახურულ არხზე დაწერა იწვევს პანიკას (panic) Go-ში, რადგან ეს აკრძალულია და ითვლება შესრულების დროს შეცდომად.

მაგალითი:

var ch chan int // ნილ-არხი

// <-ch // კითხვა ნილ-არხიდან სამუდამოდ ბლოკდება

// ch <- 1 // დაწერა ნილ-არხში სამუდამოდ ბლოკდება

ch = make(chan int)
close(ch)
// ch <- 2 // panic: დახურული არხზე გაგზავნა