ycz
ycz
首先,感谢您的issues~ context其实是存在一些争议的,go核心开发者ianlancetaylor专门开了个issue(28342),记录了当前context的问题; https://github.com/golang/go/issues/28342 尽管有很多的争议,但是在很多场景下,使用context会很方便,所以现在它在go生态圈中比较活跃,包括很多的web应用框架,几乎是标配; 如果我们遇到了以下的场景,是可以考虑使用context的: 1.上下文信息传递,比如处理http请求,在请求处理链路上传递信息; 2.控制子goroutine的运行; 3.超时控制的方法调用; 4.可以取消的方法调用; 通常开发中我们用context来控制子协程的运行会多一点; 关于zinx: 1.目前zinx涉猎的是tcp的框架,一条请求一般会把所有的消息绑在request上, 如果从上下文信息传递的方面考虑出发,这里你也可以理解request其实就是zinx里的context; 2.zinx的业务框架处理模式是worker工作池的模式,后续如果会有控制子协程的调度需求,是可以考虑添加context呢~
因为前面的判断逻辑做了CAS了,所以这里其实用不用atomic都是可以的,不过改成atomic让语法统一是个不错的建议,欢迎pr~
已调整~
issue:https://github.com/orcaman/concurrent-map/issues/140
@dobyte hi, bro. there is a mistake: "github.com/dobyte/due/v2/encoding/json: cannot compile Go 1.22 code".