Golang学习
文章平均质量分 52
golang学习的一些记录
MrLizs
这个作者很懒,什么都没留下…
展开
-
golang使用redis(redigo)
redigo转载 2022-07-18 16:52:46 · 1125 阅读 · 0 评论 -
记录一个坑了我三天Go语法导致gob解析pb的bug
写代码写多了就是犯糊涂bug源代码和修改好的代码一张清晰的截图对比:错误的调试信息进行解析后报错:unexpected EOFfunc DispatchPacket(packet rpc.Packet) bool { xxxx... 解析代码: buf := bytes.NewBuffer(rpcPacket.RpcBody) dec := gob.NewDecoder(buf) dec.Decode(&messageNa原创 2022-04-25 17:58:47 · 730 阅读 · 0 评论 -
Golang Map并发问题
今天在面试过程中遇到了一个问题:map在并发时怎么保证一致性(简化后的问题)。这里记录一下2大map一个是老的map类型一个是1.9版之后的sync.map老的map解决办法比如 使用互斥锁,使用channel进行封装(太麻烦)sync.WaitGroup也是一个不错的选择sync.map里面有一些常用方法需要了解一下:func syncMap(){ var sm sync.Map //向a这个key里面存111 sm.Store("a",111) //读值 s原创 2021-07-23 18:37:55 · 211 阅读 · 0 评论 -
分布式服务器读写数据问题
假如这段操作放到不同的微服务里去使用怎么确保数据的一致性和原子性func change_balance(uid, amount int64){ user := getUser(uid) // user: { balance } 进行数据库查询select * from t_user where uid = uid if user.balance + amount < 0 { return errors.new("balance error") } user.balance +=原创 2021-07-07 14:36:21 · 146 阅读 · 0 评论 -
golang redigo并发的问题
正在开发游戏服务器客户端是个坑,所有信息都在登录请求,导致我这边没有做连接池的redigo崩溃redigo: unexpected response line (possible server error or unsupported concurrent read by application)找了一天才定位到问题所在...转载 2021-05-30 22:36:20 · 1566 阅读 · 0 评论 -
解决go语言range遍历map的乱序问题
开发过程中遇到个map必须顺序遍历的时候测出了bug然后取查询这个range排序map的问题搜到一篇文章https://www.cnblogs.com/noKing/p/11661567.html我截取重要部分放在这里:==========分割线==========WHAT?发现下面这段代码,多次运行出的结果是不一样的 1 2 3 4 5 6 7 8 9 10 11 12 13原创 2021-05-25 18:58:24 · 3025 阅读 · 0 评论