Discuss / Python / 一个小问题,第二种办法,用一个global dict的时候,修改dict前是不是要加个锁?

一个小问题,第二种办法,用一个global dict的时候,修改dict前是不是要加个锁?

Topic source

楚公子彦

#1 Created at ... [Delete] [Delete and Lock User]

个人猜测dict就是个哈希表,如果不加锁对其进行修改的话,如果多个thread同时修改global dict,那hash过程就没法正常进行了,毕竟hash过程一般与内部实际存储数据的结构有关(比如用数组实现的哈希表,hash过程通常要用到数组长度)

廖雪峰

#2 Created at ... [Delete] [Delete and Lock User]

python的线程安全是以字节码为单位的,默认CPython的实现对于d['key']=value是线程安全的,其他环境不保证,python语言规范也没有定义是否需要保证线程安全


  • 1

Reply