goroutine与通道结合使用,是Go语言中实现并发编程的风格之一。
- 定义:
- goroutine:在Go程序中,每一个并发的活动。与线程的概念类似。
- 主goroutine:用来调用
main
函数的goroutine - 通道:用于goroutine之间的通信机制,每种通道的元素类型的固定的。
- 管道:像是工厂的流水线,其中工人是goroutine,传送带是通道,
- 创建:
- goroutine:使用关键字
go
创建。- 语法:
go functionName()
- go语句使关键字
go
后面指定的函数在一个新创建的goroutine中运行
- 语法:
- goroutine:使用关键字
- 其他:
- 通道:类型名为
chan basetype
- 声明:
var ch chan int // 一个int类型的通道
var ch chan <- int // 一个int类型的仅发送的通道
var ch <- chan int // 一个int类型的仅接收的通道
- 创建:
ch := make( chan int ) // 一个int类型的无缓冲通道
ch := make( chan int, 0 ) // 一个int类型的无缓冲通道
ch := make( chan int, 3 ) // 一个容量为3,int类型的缓冲通道;用len获取个数,cap获取容量
- 声明:
- 管道:通过通道将几个goroutine首尾相连(一个goroutine的输出作为另一个的输入)
- 通道:类型名为