亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為何非緩沖通道是先打印receive,后打印sent,而緩沖通道相反?。?/h1>

為何非緩沖通道是先打印receive,后打印sent,而緩沖通道相反啊?

正在回答

3 回答

首先,緩沖通道是不行的,send肯定先于receive。

非緩沖通道,多刷幾次即可,偶爾就會出現一次正確結果的哦~(親測,不是每次都相同次序的)

0 回復 有任何疑惑可以回復我~

如果填的是0,代表`myChannel`是一個非緩存通道。發送方在向通道值發送數據的時候會立即被阻塞,直到有某一個接收方已從該通道值中接收了這條數據。

所以在第一個匿名函數執行到`sender <- number`語句之后,便被阻塞了,這時第二個匿名函數開始被執行。等到語句`fmt.Println("Received!", <-receiver)`被執行之后,通道內的值被清空了,`sender <- number`之后的語句繼續被執行。所以就會看到

Received!?6
Sent!

這根python中的協程coroutine是類似的

6 回復 有任何疑惑可以回復我~

發送方在向通道值發送數據的時候會立即被阻塞,直到有某一個接收方已從該通道值中接收了這條數據

1 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為何非緩沖通道是先打印receive,后打印sent,而緩沖通道相反???

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號