golang 中map并发读写操作
2014-12-10 15:29
225 查看
go中map并发使用是不安全的,当你使用goroutine同时对一个map进行读写操作时,不确定会发生什么(由于读写执行顺序不确定造成的).针对这种情况,我们要添加读写锁对
从counter读取数据,使用读锁
向counter写数据,使用写锁
参考:http://blog.golang.org/go-maps-in-action
sync.RWMutex其进行同步.
var counter = struct{ sync.RWMutex m map[string]int }{m: make(map[string]int)}
从counter读取数据,使用读锁
counter.RLock() n := counter.m["some_key"] counter.RUnlock() fmt.Println("some_key:", n)
向counter写数据,使用写锁
counter.Lock() counter.m["some_key"]++ counter.Unlock()
参考:http://blog.golang.org/go-maps-in-action
相关文章推荐
- golang 中map并发读写操作
- golang中map并发读写问题及解决方法
- 关于golang的并发读写访问map问题
- golang 中map并发读写
- golang map数据结构不能并发读写问题
- 并发读写缓存实现机制(零):缓存操作指南
- oracle的读写表并发操作
- golang多个routine操作map或者slice需要上锁
- 关于新版Delphi的并发操作及公共变量并发读写
- PHP读写文件高并发处理操作实例详解
- Go 1.9 以后 map 并发读写的问题,sync.Map 揭秘
- hadoop map-reduce中的文件并发操作
- 【GoLang】GoLang map 非线程安全 & 并发度写优化
- golang针对map的判断,删除操作示例
- Golang读写文件操作
- 【转】golang 文件操作 读写文件,上传文件,遍历文件,删除文件
- 关于新版Delphi的并发操作及公共变量并发读写
- 多线程并发操作数据库时报读写冲突的错误
- (4)文本挖掘(一)——准备文本读写及对Map操作的工具类
- 单词转换程序——使用map&文件读写操作