其他分享
首页 > 其他分享> > Golang 的无缓冲通道和有缓冲通道

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