golang 并行 通道 小例子

来源:互联网 发布:mac视频聊天软件 编辑:程序博客网 时间:2024/04/29 08:28

直接上代码不墨迹

package mainimport "fmt"func main() {j := make(chan int, 5)k := make(chan bool)go func() { //启动并行for {//如果当前通道不满最大数量 等待 通道关闭调用。s, v := <-j //如果通道没有值 异步阻塞 等待if v {fmt.Printf("get value is %d \n", s)} else { //当通道关闭,并且没有数据的情况下调用k <- truefmt.Printf("get chan all \n")}}}()for i := 1; i < 3; i++ {j <- i //开始向通道写数据fmt.Printf("send j value is %d \n", i)}close(j) //关闭 j 通道fmt.Println("set j all ")<-k}


0 0
原创粉丝点击