Junior — Middle
Mis juhtub, kui kirjutada kanalisse, mille bufer on täielikult täis?
sobes.tech AI
Vastus AI-lt
Go keeles, kui proovite kirjutada väärtust täidetud kanali, millel on bufeer, operatsioon blokeerub kuni kanalis vaba ruumi tekib (st kuni keegi loeb kanali seest). See tagab sünkroniseerimise goroutine'ide vahel ja takistab andmete kadumist.
Näide:
ch := make(chan int, 2) // bufeer 2 elemendiga
ch <- 1
ch <- 2
// ch <- 3 // siin operatsioon blokeerub kuni keegi loeb kanali seest