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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在一個選擇案例中從一個通道讀取并寫入另一個通道

在一個選擇案例中從一個通道讀取并寫入另一個通道

慕婉清6462132 2022-09-12 16:22:50
考慮一下這個Go代碼,它應該立即調用,然后每分鐘調用一次:worker.DoWork()triggerChan := make(chan time.Time, 1)triggerChan <- time.Now() // We don't want to wait a minute for the first call of worker.DoWork() to happen.ticker := time.NewTicker(time.Minute)defer ticker.Stop()for {    select {    case triggerChan <- <-ticker.C:    case <-triggerChan:        worker.DoWork()    }}在第一個值之前寫入一個值,以指示它立即調用。但是,在已經有可用值的情況下(如果我們使用類似的東西而不是),則不太可能),會發生什么?運行時會看到這會阻塞,還是會愉快地軟鎖,不知道要用的結果做什么?它是否意識到這種“從渠道到渠道”的情況?triggerChanselectcase <-triggerChanworker.DoWork()ticker.Ctime.Microsecondtime.MinutetriggerChan <- <-ticker.C<-ticker.C
查看完整描述

1 回答

?
青春有我

TA貢獻1784條經驗 獲得超8個贊

根據 的狀態做出決定,但它首先計算發送操作的右側表達式。因此,在進入時,它將等到<股票代碼。C 返回。然后它將從通道中讀取第一個值,然后寫入它...selecttriggerChan



查看完整回答
反對 回復 2022-09-12
  • 1 回答
  • 0 關注
  • 76 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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