涛叔

涛叔 -

Go语言内存模型

最近做了一个项目,需要将大量数据加载到内存,然后对外提供查询使用。同时,数据又 需要按照一定的策略更新,但更新的频率很低。原则上并发读写需要加锁。但考虑到写的 频率远低于读,为这点写加锁实在是浪费,所以就想研究一下有没有不加锁的方案。这就 需要用到本文要讲的内存模型(Memory Medel)了。

Go语言的内存模型提供了一种不加锁的方案,它规定了在不显式同步的情况下,不同协程并发读写相同区域内存的行为,但使用时需要谨慎。sync/atomic中提供的原子操作可以实现无锁更新,但要确保整个程序不出问题,还必须仔细研究内存模型,凡是涉及到并发操作的地方一定要谨慎!

go语言 内存

相关推荐 去reddit讨论

热榜 Top10

Dify.AI
Dify.AI
LigaAI
LigaAI
eolink
eolink
观测云
观测云

推荐或自荐