gobyexample/examples/channel-buffering/channel-buffering.go
2019-10-07 22:03:06 +03:00

28 lines
1.1 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// По умолчанию каналы _не буферизованы_, это означает,
// что они будут принимать отправления (`chan <-`), только
// если есть соответствующий прием (`<- chan`), готовый
// принять отправленное значение. _Буферизованные каналы_
// принимают ограниченное количество значений без
// соответствующего приемника для этих значений.
package main
import "fmt"
func main() {
// Здесь мы `создаем` канал строк с буфером до 2
// значений.
messages := make(chan string, 2)
// Т.к. этот канал буферизирован, мы можем послать
// значения в канал без соответствующего одновременного
// получения.
messages <- "buffered"
messages <- "channel"
// Позже мы можем получить эти значения как обычно.
fmt.Println(<-messages)
fmt.Println(<-messages)
}