第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定

有一個(gè)緩存位置的通道,在被接收數(shù)據(jù)之前也是阻塞的嗎?

package main


import (

? ? "fmt"

)

func main() {

? ? ch := make(chan int 1)

? ? ? ?go func() {

? ? ? ? fmt.Println("1")

? ? ? ? ch <- 1

? ? }()

? ? <-ch

? ? go func() {

? ? ? ?fmt.Println("2")

? ? ? ? ch <- 1

? ? }()

? ? <-ch

? ? go func() {

? ? ? ? fmt.Println("3")

? ? ? ? ch <- 1

? ? }()

? ? <-ch

}

把上面的1個(gè)緩存通道去掉,改成非緩存通道,程序還是可以執(zhí)行的。請問有一個(gè)緩存位置的通道,在被接收數(shù)據(jù)之前也是和非緩存通道一樣,是阻塞的嗎?

正在回答

1 回答

這里的‘在被接受數(shù)據(jù)之前’指的是ch<-1存數(shù)據(jù)吧。

緩沖的channel:保證往緩沖中存數(shù)據(jù)先于對應(yīng)的取數(shù)據(jù),簡單說就是在取的時(shí)候里面肯定有數(shù)據(jù),否則就因取不到而阻塞。所以緩沖的channel可能在取數(shù)據(jù)的時(shí)候發(fā)生阻塞。

非緩沖的channel:保證取數(shù)據(jù)先于存數(shù)據(jù),就是保證存的時(shí)候肯定有其他的goroutine在取,否則就因放不進(jìn)去而阻塞。所以非緩沖的channel可能在存數(shù)據(jù)的時(shí)候會(huì)發(fā)生阻塞。


2 回復(fù) 有任何疑惑可以回復(fù)我~
#1

qq_慕圣411555 提問者

謝謝謝謝
2019-04-20 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

有一個(gè)緩存位置的通道,在被接收數(shù)據(jù)之前也是阻塞的嗎?

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號