04 2021 档案
记一次go中map并发引起的事故
摘要:错误使用map引发的血案 前言 场景复原 原因 参考 错误使用map引发的血案 前言 最近业务中,同事使用map来接收返回的结果,使用waitGroup来并发的处理执行返回的结果,结果上线之后,直接崩了。 日志大量的数据库缓存池连接失败 {"ecode":-500,"message":"timed 阅读全文
posted @ 2021-04-23 14:58 ZhanLi 阅读(2559) 评论(4) 推荐(0) 编辑
go中panic源码解读
摘要:panic源码解读 前言 panic的作用 panic使用场景 看下实现 gopanic gorecover fatalpanic 总结 参考 panic源码解读 前言 本文是在go version go1.13.15 darwin/amd64上进行的 panic的作用 panic能够改变程序的控制 阅读全文
posted @ 2021-04-23 08:42 ZhanLi 阅读(1252) 评论(2) 推荐(0) 编辑
go中控制goroutine数量
摘要:控制goroutine数量 前言 控制goroutine的数量 通过channel+sync 使用semaphore 线程池 几个开源的线程池的设计 fasthttp中的协程池实现 Start Stop clean getCh workerFunc panjf2000/ants 设计思路 go-pl 阅读全文
posted @ 2021-04-14 10:33 ZhanLi 阅读(1473) 评论(0) 推荐(0) 编辑
go中semaphore(信号量)源码解读
摘要:运行时信号量机制 semaphore 前言 作用是什么 几个主要的方法 如何实现 sudog 缓存 acquireSudog releaseSudog semaphore poll_runtime_Semacquire/sync_runtime_SemacquireMutex sync_runtim 阅读全文
posted @ 2021-04-02 13:21 ZhanLi 阅读(3389) 评论(0) 推荐(1) 编辑
go中x/sync/semaphore解读
摘要:semaphore semaphore的作用 如何使用 分析下原理 Acquire TryAcquire Release 总结 参考 semaphore semaphore的作用 信号量是在并发编程中比较常见的一种同步机制,它会保证持有的计数器在0到初始化的权重之间,每次获取资源时都会将信号量中的计 阅读全文
posted @ 2021-04-01 08:19 ZhanLi 阅读(3038) 评论(0) 推荐(0) 编辑