Sobes.tech
Junior — Middle

Milyen feltételek mellett fordul elő blokkolás adatátviteli rendszerben bufferelt csatorna használata esetén?

sobes.tech MI

Válasz az MI-től

Go-ban egy pufferelt csatorna két fő esetben blokkolódik:

  1. A csatornába írás (küldés) során: ha a csatorna puffere tele van (azaz a csatornában lévő elemek száma eléri a kapacitását), az új érték küldése blokkolja a goroutine-t, amíg valaki nem olvas a csatornából és nem szabadít fel helyet.

  2. A csatornából olvasáskor: ha a csatorna üres (nincs olvasandó elem), az olvasási kísérlet blokkolja a goroutine-t, amíg valaki nem küld új értéket.

Így a blokkolás akkor fordul elő, amikor telepufferbe próbálsz adatot küldeni vagy üres pufferből olvasni.