Sobes.tech
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:

  1. 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.

  2. 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.