亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

陕西省| 长治县| 赤峰市| 汶川县| 新竹市| 保德县| 子洲县| 绥德县| 弋阳县| 东光县| 玛多县| 连州市| 嘉祥县| 彰化县| 监利县| 台东县| 衡阳市| 错那县| 望都县| 宜都市| 扎赉特旗| 揭东县| 临夏县| 六安市| 临湘市| 新龙县| 巫山县| 琼结县| 丁青县| 肇庆市| 竹山县| 芜湖县| 乾安县| 抚顺县| 开鲁县| 吉木乃县| 万源市| 诸暨市| 望都县| 德保县| 扎赉特旗|