我在問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。 –