Channel
Go dilində kanal (channel), goroutine-lər arasında məlumat ötürmək üçün istifadə olunan bir məlumat strukturudur. Kanal, make açar sözü ilə yaradılır və <- operatoru ilə məlumat göndərmə və qəbul etmə əməliyyatları həyata keçirilir.
Bu nümunədə, messages adlı bir kanal yaradılır.
go açar sözü ilə bir goroutine yaradılır və bu goroutine messages kanalına "Hello" mesajını göndərir.
main funksiyasında, msg adlı bir dəyişkənə messages kanalından bir mesaj alınır və ekrana yazdırılır.
Output:
Bu örnekte, channel kullanarak, bir goroutine'dan ana iş parçacığına bir mesaj gönderildi. Bu nedenle, goroutine işlemi tamamlandıktan sonra ana iş parçacığı channel'dan mesajı alır ve sonucu ekrana yazdırır.
Kanallar, Golang'de birçok durumda kullanılabilir, örneğin:
Bu nümunədə, kanal istifadə edərək bir goroutine-dən ana iş parçacığına bir mesaj göndərildi. Bu səbəbdən, goroutine tamamlandıqdan sonra ana iş parçacığı kanaldan mesajı alır və nəticəni ekrana yazdırır.
Kanallar Go dilində bir çox vəziyyətdə istifadə oluna bilər, məsələn:
Goroutine-lər arasında məlumat mübadiləsi üçün
Sinxronizasiya əməliyyatları üçün
Tətbiqinizin performansını artırmaq üçün (paralel emal etmək)
Goroutine-lər arasında məlumat yarışlarını qarşısını almaq üçün
Tapşırıqların koordinasiyası və sinxronizasiyası üçün
Last updated