你能让Golang在写操作上丢弃数据包而不是阻塞吗?
给定一个长度为N的通道,我只想在它未满时写入它。否则我将丢弃此数据包并处理下一个数据包你能让Golang在写操作上丢弃数据包而不是阻塞吗?,go,Go,给定一个长度为N的通道,我只想在它未满时写入它。否则我将丢弃此数据包并处理下一个数据包 这是否可能在GOlang中实现您可以使用选择。例如: package main func main() { ch := make(chan int, 2) for i := 0; i < 10; i++ { select { case ch <- i: // process this packet
这是否可能在GOlang中实现您可以使用
选择
。例如:
package main
func main() {
ch := make(chan int, 2)
for i := 0; i < 10; i++ {
select {
case ch <- i:
// process this packet
println(i)
default:
println("full")
// skip the packet and continue
}
}
}
主程序包
func main(){
ch:=制造(成交量,2)
对于i:=0;i<10;i++{
挑选{
case ch比我知道的要晚一点,但这正是我编写的helper包中的OverflowingChannel
类型所实现的。它有效地使用了上面的select技巧
- 代码:
- 文件: