Junior — Middle
U kojim uslovima dolazi do blokade pri korišćenju baferisanog kanala u sistemu prenosa podataka?
sobes.tech АИ
Одговор од АИ
U Go, kanal sa baferom se blokira u dve glavne situacije:
-
Prilikom slanja (odnosno, upisa) u kanal: ako je bafer kanala pun (tj. broj elemenata u kanalu dostigao je njegovu kapacitet), pokušaj slanja nove vrednosti blokira goroutine dok neko ne pročita iz kanala i oslobodi mesto.
-
Prilikom čitanja iz kanala: ako je kanal prazan (nema elemenata za čitanje), pokušaj čitanja iz kanala blokira goroutine dok neko ne pošalje novu vrednost.
Tako, blokada nastaje prilikom pokušaja slanja podataka u pun bafer ili prilikom čitanja iz praznog bafera.