91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Go語言中channel的基礎知識

發布時間:2020-06-30 18:45:15 來源:網絡 閱讀:1112 作者:ck_god 欄目:編程語言

channel

goroutine運行在相同的地址空間,因此訪問共享內存必須做好同步。goroutine 奉行通過通信來共享內存,而不是共享內存來通信

 

引?類型 channel CSP 模式的具體實現,用于多個 goroutine 通訊。其內部實現了同步,確保并發安全。

 channel類型

map類似,channel也一個對應make創建的底層數據結構的引用。

 

當我們復制一個channel或用于函數參數傳遞時,我們只是拷貝了一個channel引用,因此調用者何被調用者將引用同一個channel對象。和其它的引用類型一樣,channel的零值也是nil

 

定義一個channel時,也需要定義發送到channel的值的類型。channel可以使用內置的make()函數來創建:

    make(chan Type) //等價于make(chan Type, 0)

    make(chan Type, capacity)

 

capacity= 0 時,channel 是無緩沖阻塞讀寫的,當capacity> 0 時,channel 有緩沖、是非阻塞的,直到寫滿 capacity個元素才阻塞寫入。

 

channel通過操作符<-來接收和發送數據,發送和接收數據語法:

    channel <- value      //發送valuechannel

    <-channel             //接收并將其丟棄

    x := <-channel        //channel中接收數據,并賦值給x

    x, ok := <-channel    //功能同上,同時檢查通道是否已關閉或者是否為空

 

默認情況下,channel接收和發送數據都是阻塞的,除非另一端已經準備好,這樣就使得goroutine同步變的更加的簡單,而不需要顯式的lock


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

遂宁市| 离岛区| 夏河县| 沂水县| 庆城县| 嘉鱼县| 沭阳县| 乐至县| 仁怀市| 宣城市| 洱源县| 桃源县| 哈尔滨市| 双辽市| 克什克腾旗| 山丹县| 桐庐县| 德江县| 榆林市| 永修县| 若羌县| 闵行区| 宁国市| 江陵县| 从江县| 调兵山市| 虞城县| 华阴市| 南宁市| 岑溪市| 望城县| 阿巴嘎旗| 大庆市| 灵丘县| 大化| 蒙山县| 抚松县| 南木林县| 柘城县| 山阴县| 高州市|