Junior — Middle
Co się dzieje, jeśli wykonasz zapis do kanału, którego bufor jest w pełni zapełniony?
sobes.tech AI
Odpowiedź od AI
W Go, jeśli próbujesz zapisać wartość do kanału z buforem, który jest w pełni zapełniony, operacja zapisu zostanie zablokowana, dopóki w kanale nie zwolni się miejsce (czyli dopóki ktoś nie odczyta z kanału). Zapewnia to synchronizację między gorutynami i zapobiega utracie danych.
Przykład:
ch := make(chan int, 2) // bufor na 2 elementy
ch <- 1
ch <- 2
// ch <- 3 // tutaj zapis zostanie zablokowany, dopóki ktoś nie odczyta z ch