- チャネル自体は、キューデータ構造であり、
- データFIFO
- 自体チャンネルは、スレッドセーフであります
- チャネルの種類があり、チャネルは、文字列型構造の文字列のみを保持することができます
- チャネルデータ型はを利用するために必要への参照であります
- パイプラインにデータを書き込むと、その容量を超えないようにしてください
- チャネルが閉じているときは、書き込みデータを内部に見て、データを読み取ることができない問題はありません
- 範囲のために使用することができますしてパイプラインを通過するが、最初のクローズクローズドチャンネル
実施例1:
データが書き込まれ、書き込まれたwriteChanを開く
readChanを開くためには、データを読み出す
読み出しおよびフェッチ動作は同じAチャンネル導管である
読み取り、書き込みがメインスレッドが完了した後のように起動します
/**
* @Author: v_bivwei
* @Description:
* @Date: 2020/1/19 17:25
*/
package main
import "fmt"
func writeData(intChan chan int) {
for i := 1; i <= 50; i++ {
intChan <- i
fmt.Println("writeData i= ", i)
}
close(intChan)
}
func readData(intChan chan int, exitChan chan bool) {
for {
v, ok := <-intChan
if !ok {
break
}
fmt.Println("readData v =", v)
}
exitChan <- true
close(exitChan)
}
func main() {
intChan := make(chan int, 10)
exitChan := make(chan bool, 1)
go writeData(intChan)
go readData(intChan, exitChan)
for {
_, ok := <-exitChan
if !ok {
break
}
}
fmt.Println("结束了")
}