私はCPython、python2.7について尋ねています。GILに関してpython dictのlen()はアトミックですか?
d = {}
dlock = threading.Lock()
def add(key, value):
with dlock:
d[key] = value
ばかり頼って、ロックをつかんせずに別のスレッドからのdictのサイズを取得することが安全である:私はdict
を持っている、とadd()
を呼び出すことにより、随時に値を挿入しますいくつかのスレッドが言いますGILで?
def count():
return len(d)
私は、正確に正しい値を得ることについてcount()
中のある時点で正しかっただけで任意の値を気にしないと仮定すると。
Dictsには 'insert'メソッドがありません。 – user2357112
user2357112:ありがとうございました。 – Benno
ロックはちょっと無意味です。 'd [key] = value'はすでに原子w.r.tです。 GIL –