数据结构和算法分析程序员Golang 入门资料+笔记

Go 的并发模式(中)(更新中)

2019-04-03  本文已影响1人  zidea
ch := make(chan int)
    ch <- 1
ch := make(chan int, 3)
fmt.Println("",<-ch)
    ch := make(chan int, 3)
    ch <-1
    ch <-2
    ch <-3
    

    fmt.Println("",<-ch)
    fmt.Println("",<-ch)
    fmt.Println("",<-ch)

    ch := make(chan int, 3)
    ch <-1
    ch <-2
    ch <-3
    
    close(ch)
    fmt.Println("",<-ch)
    fmt.Println("",<-ch)
    fmt.Println("",<-ch)
    fmt.Println("",<-ch)
    fmt.Println("",<-ch)

大家发现当关闭channel后重,动态获取值为 0

 1
 2
 3
 0
 0

当调用 close 来关闭通道后,我们再从 channel 获取数据时候返回两个值
0 为 int类型默认值, false 表示该 channel 已经关闭。

val, ok := <-ch
   fmt.Println("",ok)
   fmt.Println("",val)

    false
 0
上一篇 下一篇

猜你喜欢

热点阅读