Junior — Middle
Za akých podmienok dochádza k blokovaniu pri používaní vyrovnávacieho kanála v systéme prenosu dát?
sobes.tech AI
Odpoveď od AI
V Go, blokuje sa zásobníkom v dvoch hlavných prípadoch:
-
Pri odosielaní (písaní) do kanála: ak je zásobník kanála plný (t.j. počet prvkov v kanáli dosiahol jeho kapacitu), pokus o odoslanie novej hodnoty blokuje goroutine, kým niekto ne prečíta z kanála a neuvoľní miesto.
-
Pri čítaní z kanála: ak je kanál prázdny (žiadne prvky na čítanie), pokus o čítanie z kanála blokuje goroutine, kým niekto ne odošle novú hodnotu.
Takto blokovanie nastáva pri pokuse odoslať dáta do plného zásobníka alebo pri pokuse čítať z prázdneho zásobníka.