站長資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        golang chan是否關(guān)閉

        golang chan是否關(guān)閉

        chan是golang中非常重要的一個(gè)東西,用來做goroutine的通信,因?yàn)間olang程序必然會(huì)有多個(gè)goroutine,如何同步這些goroutine就很重要了。

        使用chan時(shí)有幾個(gè)心得: (推薦學(xué)習(xí):go)

        首先,永遠(yuǎn)是符號<-進(jìn)行讀取或者寫入,譬如v,ok := <-c是讀取,而c <- v是寫入。

        其次,讀取時(shí),如果沒有ok,也是可以讀取的。不過如果closed也是能讀的,沒有賦值而已;如果要知道是否closed得加ok,也就是除非chan永遠(yuǎn)不關(guān)閉,否則讀取應(yīng)該用v,ok := <-c而不是用v := <-c的方式。

        再次,不能向closed的chan寫入,所以一般寫入時(shí)需要用一個(gè)信號的chan(一般buffer為1),來判斷是否寫入或者放棄,用select判斷是寫入成功了,還是正在關(guān)閉需要放棄寫入。

        最后,如果closed后,chan有數(shù)據(jù),ok還是true的,直到chan沒有數(shù)據(jù)了才false。

        當(dāng)一個(gè)chanel被關(guān)閉后,再取出不會(huì)阻塞,而是返回零值

        package main   import "fmt"   func main() {     c := make(chan int, 5)     c <- 123     close(c)           fmt.Println(<-c)     fmt.Println(<-c) }

        輸出

        123 0

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
        主站蜘蛛池模板: 免费91麻豆精品国产自产在线观看| 成人国内精品久久久久影院| 日韩精品无码熟人妻视频| 午夜精品福利视频| 久久香蕉国产线看观看精品yw| 精品国产AⅤ一区二区三区4区| 91精品国产高清久久久久久io| 亚洲精品一级无码鲁丝片| 国产精品高清免费网站| 国产精品爽黄69天堂a| 久久这里只有精品18| 久久精品无码一区二区app| 91av国产精品| 国产精品视频一区二区三区| 久久精品国产第一区二区三区 | 99久久www免费人成精品| 久久国产精品成人影院| 一本一本久久a久久精品综合麻豆| 国产精品丝袜久久久久久不卡| 欧美日韩精品乱国产538| 精品精品国产自在久久高清 | 亚洲av无码成人精品国产| 久99久无码精品视频免费播放| 国产精品免费观看视频| 99国产精品私拍pans大尺度| 伊人久久精品线影院| 亚洲综合精品一二三区在线| 无码精品一区二区三区免费视频| 青青草国产精品| 四虎成人www国产精品| 欧美精品一区二区三区视频| 亚洲欧美日韩精品| 国产精品免费久久久久电影网| 四虎成人www国产精品| 6080亚洲精品午夜福利| 久久亚洲国产午夜精品理论片| 国产精品久久久久9999高清| 国产亚洲精品国产| 欧美精品第一页| 国产精品亚洲综合一区| 久久99精品国产麻豆不卡|