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

w570955342 · · 1728 次点击
buscoop
纸上得来终觉浅,绝知此事要躬行!
什么不安全啊?我说是代码不完整 :smile:
#4
更多评论
我有用过类似的情景,但我是这样写的。 ``` 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
buscoop
纸上得来终觉浅,绝知此事要躬行!
这个不全,谁知道你写得什么
#2