вторник, 15 января 2019 г.

Основы Go: буферизированные каналы

Каналы могут быть буферизированными. Чтобы инициализировать буферизированный канал, передайте в make вторым параметром размер буфера:

ch := make(chan int, 100)

Отправка в буферизованный канал блокируется, только если буфер полон. Получение блокируется, когда буфер пуст.

package main

import "fmt"

func main() {
  ch := make(chan int, 2)
  ch <- 1
  ch <- 2
  fmt.Println(<-ch)
  fmt.Println(<-ch)
}

Вывод:

1
2


Читайте также:


Комментариев нет:

Отправить комментарий