记一次go中map并发引起的事故
摘要:错误使用map引发的血案 前言 场景复原 原因 参考 错误使用map引发的血案 前言 最近业务中,同事使用map来接收返回的结果,使用waitGroup来并发的处理执行返回的结果,结果上线之后,直接崩了。 日志大量的数据库缓存池连接失败 {"ecode":-500,"message":"timed
阅读全文
posted @
2021-04-23 14:58
ZhanLi
阅读(2559)
推荐(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)
推荐(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) 编辑
go中semaphore(信号量)源码解读
摘要:运行时信号量机制 semaphore 前言 作用是什么 几个主要的方法 如何实现 sudog 缓存 acquireSudog releaseSudog semaphore poll_runtime_Semacquire/sync_runtime_SemacquireMutex sync_runtim
阅读全文
posted @
2021-04-02 13:21
ZhanLi
阅读(3389)
推荐(1) 编辑
go中x/sync/semaphore解读
摘要:semaphore semaphore的作用 如何使用 分析下原理 Acquire TryAcquire Release 总结 参考 semaphore semaphore的作用 信号量是在并发编程中比较常见的一种同步机制,它会保证持有的计数器在0到初始化的权重之间,每次获取资源时都会将信号量中的计
阅读全文
posted @
2021-04-01 08:19
ZhanLi
阅读(3038)
推荐(0) 编辑