Golang 的无缓冲通道和有缓冲通道
作者:互联网
声明通道
package main
func main() {
/*
//无缓冲整型通道
unbuffered := make(chan int)
//有缓冲字符串通道
buffered := make(chan string,10)
//向通道发送值 <- 在通道右侧
buffered <- "Gopher"
//从通道接受值 <- 在通道左侧
value := <- buffered
*/
}
无缓冲通道
顾名思义,无缓冲通道没有保存通道的值的能力,但是它可以保证同时交换数据。也就接受或者取值如果不同步进行则会发生阻塞。利用这个特性我们可以实现业务通信等场景
有缓冲通道
阻塞场景是只有通道中取值的时候没有值或者通道中的值已经满了。满足这两种条件才会发生阻塞。
总结:通道提供了一种再两个goroutine之间共享数据的简单办法!
标签:缓冲,make,chan,阻塞,Golang,main,通道 来源: https://www.cnblogs.com/ikai/p/16332868.html