1. 程式人生 > >GO中chan的理解

GO中chan的理解

chan的分類

分為帶快取和不帶快取這2類,尤其需要關注帶快取的用法,防止掉坑裡。

  1. 不帶快取
    make(chan 資料型別)

  2. 帶快取
    make(chan 資料型別,長度)

例如定義一個帶快取的chan: ch := make(chan int,2)
這裡我們定義個快取長度為2的chan,當我們已經往chan中寫入了2個數據,當再次寫入第三個資料的時候就會發送阻塞,直到其他人從該chan中讀取了資料,那麼才可以再次寫入資料,帶快取的chan類似於一個佇列,當佇列滿的時候是無法寫入資料的。
3. chan的關閉
chan可以通過close關閉,關閉後的chan是無法寫入資料的,但是可以讀取資料。