猿问
具有并发支持的 golang 哈希表
我需要使用一个非常大的哈希表,并从许多读者和许多作者并行访问它。是否有像map这样的数据结构,支持许多并行读取和写入,而无需每次访问锁定整个结构?
凤凰求蛊
浏览 120
回答 2
2回答
慕村225694
既然你要了地图每次访问时无需锁定整个结构我指导您执行以下实施:https://github.com/cornelk/hashmap该项目使用许多CPU架构中常见的原子指令实现了纯无锁哈希图数据结构常规 gosync.Map仍然使用底层互斥锁来锁定相应的映射数据结构。
0
0
0
心有法竹
包sync提供并发安全映射。Map 类似于 Go 的 map[interface{}]interface{},但可以安全地由多个 goroutine 并发使用,无需额外的锁定或协调。加载、存储和删除在分摊常量时间内运行。尽管规范本身指出了应该使用这两种特定情况(否则他们建议使用带有锁定机制的法线贴图):当给定键的条目仅写入一次但读取多次时,就像在只会增长的缓存中一样当多个 goroutine 读取、写入和覆盖不相交的键集的条目时
0
0
0
随时随地看视频
慕课网APP
相关分类
Go
我要回答