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