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

golang select不阻塞嗎

golang select不阻塞嗎

select是go語(yǔ)言中常用的一個(gè)關(guān)鍵字,是用來(lái)監(jiān)聽(tīng)和channel有關(guān)的IO操作,當(dāng) IO 操作發(fā)生時(shí),觸發(fā)相應(yīng)的動(dòng)作。

如果有多個(gè)case都可以運(yùn)行,Select會(huì)隨機(jī)公平地選出一個(gè)執(zhí)行。其他不會(huì)執(zhí)行。 (推薦學(xué)習(xí):go)

否則:

如果有default子句,則執(zhí)行該語(yǔ)句。

如果沒(méi)有default字句,select將阻塞,直到某個(gè)通信可以運(yùn)行;Go不會(huì)重新對(duì)channel或值進(jìn)行求值。

基本用法

//select基本用法 select { case <- chan1: // 如果chan1成功讀到數(shù)據(jù),則進(jìn)行該case處理語(yǔ)句 case chan2 <- 1: // 如果成功向chan2寫(xiě)入數(shù)據(jù),則進(jìn)行該case處理語(yǔ)句 default: // 如果上面都沒(méi)有成功,則進(jìn)入default處理流程

如果有一個(gè)或多個(gè)IO操作可以完成,則Go運(yùn)行時(shí)系統(tǒng)會(huì)隨機(jī)的選擇一個(gè)執(zhí)行,否則的話,如果有default分支,則執(zhí)行default分支語(yǔ)句,如果連default都沒(méi)有,則select語(yǔ)句會(huì)一直阻塞,直到至少有一個(gè)IO操作可以進(jìn)行

start := time.Now()     c := make(chan interface{})     ch1 := make(chan int)         ch2 := make(chan int)      go func() {          time.Sleep(4*time.Second)         close(c)     }()      go func() {          time.Sleep(3*time.Second)         ch1 <- 3     }()        go func() {          time.Sleep(3*time.Second)         ch2 <- 5     }()      fmt.Println("Blocking on read...")     select {     case <- c:          fmt.Printf("Unblocked %v later.n", time.Since(start))      case <- ch1:          fmt.Printf("ch1 case...")       case <- ch2:          fmt.Printf("ch1 case...")     default:          fmt.Printf("default go...")     }

運(yùn)行上述代碼,由于當(dāng)前時(shí)間還未到3s。所以,目前程序會(huì)走default。

贊(0)
分享到: 更多 (0)
網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
色综合99久久久无码国产精品| 国产精品视频一区国模私拍| 国产精品成人99一区无码| 亚洲精品乱码久久久久久| 国产精品视频公开费视频| 精品亚洲AV无码一区二区三区| 亚洲精品高清一二区久久| 国产精品秘入口18禁麻豆免会员| 777国产偷窥盗摄精品品在线| 国产精品白丝AV嫩草影院| 国产精品久久久久久精品三级| 91国内揄拍国内精品情侣对白| 国产成人毛片亚洲精品| 日韩在线视频播放| 中文字幕精品三区无码亚洲| 亚洲国产精品特色大片观看完整版| 日韩中文字幕免费视频| 久久久精品久久久久三级| 99热成人精品热久久669| 国产91精品久久久久999| 人妖在线精品一区二区三区| 91国语精品自产拍在线观看一| 亚洲无删减国产精品一区| 国产激情精品一区二区三区| 四虎永久在线精品国产馆V视影院| 国产精品视频一区| 久久精品网站免费观看| 久久水蜜桃亚洲av无码精品麻豆| 国产精品 羞羞答答在线| 亚洲精品国产福利一二区| 亚洲福利精品电影在线观看| 国产精品女在线观看| 国产精品99精品一区二区三区| 久久国产综合精品SWAG蓝导航| 亚洲av永久无码精品秋霞电影秋| 国产精品美女久久福利网站| 久9re热这里精品首页| 精品多毛少妇人妻AV免费久久| 国产精品自在拍在线拍| 琪琪精品视频在线观看| 国产va精品免费观看|