个人猜测dict就是个哈希表,如果不加锁对其进行修改的话,如果多个thread同时修改global dict,那hash过程就没法正常进行了,毕竟hash过程一般与内部实际存储数据的结构有关(比如用数组实现的哈希表,hash过程通常要用到数组长度)
python的线程安全是以字节码为单位的,默认CPython的实现对于d['key']=value是线程安全的,其他环境不保证,python语言规范也没有定义是否需要保证线程安全
d['key']=value
Sign in to make a reply
楚公子彦
个人猜测dict就是个哈希表,如果不加锁对其进行修改的话,如果多个thread同时修改global dict,那hash过程就没法正常进行了,毕竟hash过程一般与内部实际存储数据的结构有关(比如用数组实现的哈希表,hash过程通常要用到数组长度)