ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

并发安全的数据结构设计

并发安全的数据结构设计 TL;DR 核心要点速览无缓冲channel发送和接收必须同步,否则死锁有缓冲channel缓冲区未满时发送不阻塞goroutine初始栈2KB,比线程轻100倍GMP调度器P数量默认等于CPU核数sync.Mutex保护共享状态,channel用于通信本篇是Go并发编程模块,含实战代码摘要:并发安全数据结构设计,线程安全队列、Map、缓存,Mutex和channel两种实现方案对比Go并发编程实战(三十三)|并发安全的数据结构设计摘要:本文从构建一个高并发API响应缓存出发,讲清sync.Map的适用场景和陷阱,实现一个分片并发map降低锁竞争,演示并发slice的设计模式,并分享一个RWMutex写饥饿导致线上接口雪崩的踩坑案例。一、一个被缓存锁拖垮的API网关去年我们做了一个API网关,核心功能是缓存上游接口的响应。热点接口缓存5秒,减少下游调用。QPS涨到3万时开始间歇性超时,pprof抓火焰图发现时间全花在sync.RWMutex.
返回列表