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的輸出作爲另一個的輸入)
- 通道:類型名爲