go小白 問問大神 幾個通道的問題
第一 如何判斷 這個通道 是關閉 還是開啟
第二 如何判斷 這個通道是否滿
第三 一個通道的長度 最好設置多少? 有范圍限制么?
第四 通道個數? 我們一般為了應付并發 在程序里面 設置幾個通道最好呢 ch1 ch2 ch3 ch4....肯定 有最優數量吧
第一 如何判斷 這個通道 是關閉 還是開啟
第二 如何判斷 這個通道是否滿
第三 一個通道的長度 最好設置多少? 有范圍限制么?
第四 通道個數? 我們一般為了應付并發 在程序里面 設置幾個通道最好呢 ch1 ch2 ch3 ch4....肯定 有最優數量吧
2021-02-17
舉報
2021-07-12
第一:make就是開啟通道,close就是關閉通道。沒有關閉通道就是可使用狀態
第二:
ch2 := make(chan string, 2)
if len(ch2) == 0{
? ? fmt.Println("通道為空!")
} else if len(ch2) == cap(ch2) {
? ? fmt.Println("通道已滿!")
} else {
? ? fmt.Println("通道未滿!")
}
第三:
根據情況設置,channel是緩存buffer,可以用來限制goroutine并發數。也不是越小越好。根據機器性能,業務實際情況。
第四:
同三