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

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

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