写了一个简单的go chan的例子

原创
2019/01/11 15:50
阅读数 34
package main
import "fmt"
import "time"

func main(){
    var c1 = make(chan bool)
    var c2 = make(chan bool)
    var c3 = make(chan bool)
    
    go func(c1 chan bool){
        fmt.Println("run c1")
        //模拟耗时
        time.Sleep(2*time.Second)
        c1<-true
    }(c1)
    go func(c2 chan bool){
        fmt.Println("run c1")
        time.Sleep(2*time.Second)
        c2<-true
    }(c2)
    go func(c3 chan bool){
        fmt.Println("run c1")
        time.Sleep(2*time.Second)
        c3<-true
    }(c3)
    
    //等待各个协成的完成(阻塞)
    <-c1
    <-c2
    <-c3
    fmt.Println("all done")
}

 

展开阅读全文
Go
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部