Closing Channels
Go dilində, channel-ların bağlanması, məlumatların göndərilməsi və alınması prosesində sinxronizasiyanı təmin edir. close
funksiyası vasitəsilə channel bağlanır. Bağlanmış bir channel-a mesaj göndərmək mümkün deyil və həmin channel-dan daha çox mesaj alınmaz.
Bu nümunədə:
jobs
adlı bir channel yaradılır və işlər bu kanala göndərilir.done
adlı bir channel yaradılır və işlərin tamamlandığını bildirmək üçün istifadə olunur.Bir
goroutine
yaradılır və bugoroutine
,jobs
channel-ından mesajları alır. Alınan mesajların sayı azaldıqca hər dəfə "received job" yazısı çap edilir.for
döngüsü iləjobs
channel-ına 3 iş göndərilir və hər göndərmə zamanı "sent job" mesajı göstərilir.jobs
channel-ı bağlandıqdan sonragoroutine
, channel-dan bütün mesajları alır və son olaraq "received all jobs" mesajı göstərilir.
Output:
Bu nümunə, Go dilində bir channel-a mesaj göndərdikdən sonra onu necə bağlayacağınızı və bağlanmış channel-dan daha çox mesaj alınmadığını göstərir. Bağlı bir channel-dan oxumağa davam edə bilərsiniz, lakin artıq yeni mesajlar göndərilə bilməz.
Last updated