Junior — Middle
Mi történik, ha írunk egy csatornába, amelynek pufferje teljesen megtelt?
sobes.tech MI
Válasz az MI-től
Go-ban, ha megpróbálsz értéket írni egy pufferelt csatornába, amely teljesen megtelt, az írási művelet blokkolódik, amíg a csatornában nem szabadul fel hely (azaz, amíg valaki nem olvas a csatornából). Ez szinkronizálást biztosít a goroutine-ok között, és megakadályozza az adatok elvesztését.
Példa:
ch := make(chan int, 2) // 2 elemű puffer
ch <- 1
ch <- 2
// ch <- 3 // itt az írás blokkolódik, amíg valaki nem olvas a ch-ből