Golang实现带优先级的channel

hurray123 · 2016-03-13 21:00:02

你那样解决不了问题,内层select 依然存在竞争,这样不更好。

for {
    select {
    case data := <- highChan:
        handleHigh(data)
    default:
        select {
        case data := <- lowChan:
            handleLow(data)
        default:
            i:=1//空操作
        }
    }
}
#2
更多评论

这个不对吧,一开始没数据输入,那么将卡在default的select中,这样导致会highChan和lowChan为同等级

https://play.golang.org/p/ZY-P1kxAbx

#1