我在问CPython,python2.7。说我有一个dict
,这将通过调用add()
插入值不时线程数:是关于GIL的python dict的len()原子吗?
d = {}
dlock = threading.Lock()
def add(key, value):
with dlock:
d[key] = value
是否安全得到一个单独的线程的字典的大小,而不敛锁,仅仅依靠在GIL上?
def count():
return len(d)
假设我不关心怎样恰恰是正确的值,只是在count()
是正确的,在某一时刻的任意值。
Dicts没有'insert'方法。 – user2357112
user2357112:谢谢,更正。 – Benno
这个锁看起来有点毫无意义。 'd [key] = value'已经是原子的w.r.t. GIL。 –