Go語言:同時選擇緩衝和非緩衝通道
Go語言:同時選擇緩衝和非緩衝通道
目前的任務是實現緩衝發送通道和非緩衝通道的同時選擇無緩衝接收通道,無需不斷消耗CPU資源。這種情況相當於阻塞,直到通道準備好發送而不傳輸任何資料。package main
import (
"fmt"
"time"
)
func valueToSend() int {
// Generate a value to send, calculated/acquired each attempt
return 0
}
func main() {
s := make(chanpackage main
進口 (
“FMMT”
“時間”
)
func valueToSend() int {
// 產生一個要傳送的值,每次嘗試都會計算/獲取
返回0
}
函數主() {
s := make(chan在傳送或接收資料之前依賴頻道長度或容量檢查時必須小心謹慎。這種方法可能會導致意外行為,因為通道狀態可能會在檢查和實際發送/接收操作之間發生變化。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3