func randomChain() chan interface{} { nc := make(chan interface{},32) go func() { defer close(nc) for { newData := &Data{ Value: make(map[string]interface{}) } newData.Value["car"] = RandomCarNum() nc <- newData } }() return nc } 启动两个协程获取写入chan
时间: 2024-03-03 13:53:26 浏览: 55
数据的随机生成函数random number
可以这样启动两个协程获取写入chan:
```
c1 := randomChain()
c2 := randomChain()
for i := 0; i < 10; i++ {
select {
case data1 := <-c1:
fmt.Println("c1:", data1)
case data2 := <-c2:
fmt.Println("c2:", data2)
}
}
```
这样就可以同时从两个 `randomChain` 协程中获取数据,每次从其中一个协程中获取到数据时,就会打印出该协程的名称和获取到的数据。由于是随机获取,所以打印的顺序可能不一致。
阅读全文