Вопрос: Как работают каналы (chan) и чем отличается буферизированный от небуферизированного?

Go Junior Без компании
Вопрос: Как работают каналы (chan) и чем отличается буферизированный от небуферизированного?
Ответы
Небуферизированный канал синхронизирует отправителя и получателя (send блокируется до receive). Буферизированный имеет очередь до cap. ```go package main import ( "fmt" "time" ) func main() { ch := make(chan int) // unbuffered go func() { ch <- 1 }() fmt.Println(<-ch) buf := make(chan int, 2) buf <- 10 buf <- 20 fmt.Println(<-buf) fmt.Println(<-buf) time.Sleep(10 * time.Millisecond) } ```