Go 1.9 sync.Map
原生的map在没有加锁的情况下用于协程是数据不安全,并且因为不安全,在编译的时候编译器也会报错。 如果要在多个协程中使用同一个map变量,则需要自己进行加解锁操作。 在Go 1.9中,标准库中加入了协程安全的map,这个sync.Map有以下这个公开的方法: Store LoadOrStore Load Delete Range 下面分别介绍下这几个方法的用法,其实现原理也在最后面给出相应的原理。 (1)Store(key, value interface{}) 说明:存储一个设置的键值。 (2)LoadOrStore(key, value interface{}) (actual interface{}, loaded bool) 说明:存在则返回原值, true,不写入传入值。不存在则存入,并返回最新值和false (3)Load(key interface{}) (value interface{}, ok bool) 说明:读取存储在map中的值,如果没有nil,则返回nil。OK的结果表示是否是map中找到值。 (4)Delete(key interface{}) 说明:删除...


