哎, 大哥告诉我,你是python写多了吧? 还语言层面保证线程安全。python在虚拟机对字节码编排保证了安全,怎么做的?gil全局锁, 那么代价呢?限制并行。
一般来说,我们不能让语言原生的map就支持并发安全,毕竟锁是有开销的,哪怕atomic cas实现锁也有十几个ns的开销。
一个常见的场景,比如你在函数内无并发需求,仅需要一个临时map存kv,也用加锁的map么? 嗯,开销有些大了。所以,原生map就单纯实现map基础就好了。要安全,加锁。
当然,1.9后Go标准库有个sync map,它是个在原生map基础上通过cow封装了并发安全map库。像java也有并发map,也是在原生得基础上开发的库包罢了。