久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

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

      golang chan是否關(guān)閉

      golang chan是否關(guān)閉

      chan是golang中非常重要的一個東西,用來做goroutine的通信,因為golang程序必然會有多個goroutine,如何同步這些goroutine就很重要了。

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

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

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

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

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

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

      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號