Понимание каналов
Небуферизированные каналы блокируют отправителя и получателя, пока обе стороны не будут готовы. Это делает поведение более предсказуемым и упрощает синхронизацию.
Небуферизированный канал — это канал без внутреннего буфера. Отправка в такой канал блокируется, пока другой поток не выполнит чтение. Это поведение:
упрощает контроль над параллельным выполнением;
исключает потерю данных;
снижает риск гонок и deadlock’ов.
Буферизированные каналы нужны в специфических паттернах (например, worker pool или rate limiter), но требуют большего внимания к логике работы с буфером.