Go语言通道(chan)——goroutine之间通信的管道

  • 内容
  • 评论
  • 相关

如果说 goroutine 是 Go语言程序的并发体的话,那么 channels 就是它们之间的通信机制。一个 channels 是一个通信机制,它可以让一个 goroutine 通过它给另一个 goroutine 发送值信息。每个 channel 都有一个特殊的类型,也就是 channels 可发送数据的类型。一个可以发送 int 类型数据的 channel 一般写为 chan int。

Go语言提倡使用通信的方法代替共享内存,当一个资源需要在 goroutine 之间共享时,通道在 goroutine 之间架起了一个管道,并提供了确保同步交换数据的机制。声明通道时,需要指定将要被共享的数据的类型。可以通过通道共享内置类型、命名类型、结构类型和引用类型的值或者指针。

这里通信的方法就是使用通道(channel),如下图所示。


图:goroutine 与 channel 的通信

本文标题:Go语言通道(chan)——goroutine之间通信的管道

本文地址:http://www.hosteonscn.com/2456.html

评论

0条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注