golang select chan实现任务优先级编排!!!

w570955342 · · 1769 次点击
buscoop
纸上得来终觉浅,绝知此事要躬行!
这个不全,谁知道你写得什么
#2
更多评论
我有用过类似的情景,但我是这样写的。 ``` for { // 优先管理连接 select { // add conn case ic := <-bNode.addConnChan: bNode.Connections[ic.GetUuid()] = ic bNode.clientSize++ // conn leave case key := <-bNode.delConnChan: delete(bNode.Connections, key) bNode.clientSize-- default: select { case pkg := <-bNode.onMessage: if pkg == nil { // stop Serve _ = bNode.Destroy() return } bNode.allMessages = append(bNode.allMessages, pkg) bNode.broadcast(pkg) default: time.Sleep(time.Millisecond * 50) } } } ```
#1
你好,请问哪里不安全了,麻烦指出来。 代码这里 https://gitee.com/helloh2o/lucky/blob/master/core/inet/broadcast.go
#3