當前位置: 首頁>>編程語言>>正文


Go語言教程:通道緩衝

返回Go語言教程首頁

概念簡介

默認情況下,通道是 無緩衝 的,這意味著隻有對應的接收(`<- chan`) 通道準備好接收時,才允許進行發送(`chan <-`)。可緩存通道
允許在沒有對應接收方的情況下,緩存限定數量的值。

例程代碼


package main

import "fmt"

func main() {

	// 這裏我們創建了一個字符串通道,最多允許緩存 2 個值。
	messages := make(chan string, 2)

	// 由於此通道是緩衝的,因此我們可以將這些值發送到通道中
	// 而不需要相應的並發接收。
	messages <- "buffered"
	messages <- "channel"

	// 然後我們可以像前麵一樣接收這兩個值。
	fmt.Println(<-messages)
	fmt.Println(<-messages)
}

執行&輸出


$ go run channel-buffering.go 
buffered
channel

課程導航

學習上一篇:Go語言教程:通道    學習下一篇:Go語言教程:通道同步

相關資料

本例程github源代碼:https://github.com/xg-wang/gobyexample/tree/master/examples/channel-buffering

Go語言通道緩衝

本文由《純淨天空》出品。文章地址: https://vimsky.com/zh-tw/article/4043.html,未經允許,請勿轉載。