成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

golang并發(fā)編程之channel

一、概念

channel是golang語言級別提供的協(xié)程(goroutine)之間的通信方式。
goroutine運行在相同的地址空間,因此訪問共享內(nèi)存必須做好同步。那么goroutine之間如何進(jìn)行數(shù)據(jù)的通信呢,Go提供了一個很好的通信機(jī)制channel。channel可以與Unix shell 中的雙向管道做類比:可以通過它發(fā)送或者接收值。這些值只能是特定的類型:channel類型。定義一個channel時,也需要聲明發(fā)送到channel的值的類型。

成都網(wǎng)絡(luò)公司-成都網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)十年經(jīng)驗成就非凡,專業(yè)從事網(wǎng)站設(shè)計制作、網(wǎng)站制作,成都網(wǎng)頁設(shè)計,成都網(wǎng)頁制作,軟文營銷,一元廣告等。十年來已成功提供全面的成都網(wǎng)站建設(shè)方案,打造行業(yè)特色的成都網(wǎng)站建設(shè)案例,建站熱線:18980820575,我們期待您的來電!

二、聲明方式
    var chanName chan ElementType
    var ch chan int
    使用make,可以指定channel容量
    ch = make(chan int)
三、channel得讀和寫

channel通過操作符<-來接收和發(fā)送數(shù)據(jù)
默認(rèn)情況下,channel接收和發(fā)送數(shù)據(jù)都是阻塞的,除非另一端已經(jīng)準(zhǔn)備好,這樣就使得Goroutines同步變的更加的簡單,而不需要顯式的lock。所謂阻塞,也就是如果讀?。╲alue := <-ch)它將會被阻塞,直到有數(shù)據(jù)接收。其次,任何發(fā)送(ch<-5)將會被阻塞,直到數(shù)據(jù)被讀出。無緩沖channel是在多個goroutine之間同步很棒的工具。

ch <- v    // 發(fā)送v的值到channel ch-> 寫數(shù)據(jù)
v := <- ch // 從ch中接收數(shù)據(jù),并賦值給v ->讀數(shù)據(jù)
四、代碼實現(xiàn)
package main

import (
    "fmt"
    "strconv"
)

//定義一個加法函數(shù),傳入channel類型,每計算一次,quit加1
func Add(x, y int, quit chan int)  {
    z := x + y
    fmt.Println(z)

    //寫數(shù)據(jù)
    quit <- 1

}

//接受數(shù)據(jù),并賦值給我
func Read(ch chan int)  {
    value := <- ch

    fmt.Println("value" + strconv.Itoa(value))

}

func Write(ch chan int)  {
    //ch <- 10

}

func main()  {

    //定義一個channel類型切片數(shù)組
    chs := make([]chan int, 10)

    //循環(huán)執(zhí)行加法函數(shù)
    for i := 0; i < 10; i++ {
        //拿取一個channel
        chs[i] = make(chan int)
        //執(zhí)行g(shù)oroutine和發(fā)送一個channel類型數(shù)據(jù)
        go Add(i, i, chs[i])
    }

    for _, v := range chs {
        //接口channel類型數(shù)據(jù)
        <- v
    }
}

網(wǎng)站欄目:golang并發(fā)編程之channel
網(wǎng)頁路徑:http://jinyejixie.com/article24/jjpije.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、云服務(wù)器、企業(yè)建站、響應(yīng)式網(wǎng)站、靜態(tài)網(wǎng)站、服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名
团风县| 濉溪县| 通渭县| 四子王旗| 寿光市| 商南县| 永靖县| 临城县| 晋中市| 武清区| 英吉沙县| 扶余县| 台北县| 河曲县| 阿巴嘎旗| 怀安县| 南木林县| 兴山县| 平遥县| 托克逊县| 平邑县| 西安市| 兴国县| 佛冈县| 门头沟区| 桐梓县| 苍梧县| 陇川县| 霍山县| 团风县| 周宁县| 光山县| 淄博市| 广宁县| 开平市| 巴南区| 柘城县| 常宁市| 涡阳县| 汤阴县| 天气|