是关于GIL的python dict的len()原子?

时间:2016-08-23 17:17:55

标签: python python-2.7 cpython

我在问CPython,python2.7。假设我有一个dict,并且有几个线程会不时通过调用add()来插入值:

d = {}
dlock = threading.Lock()
def add(key, value):
    with dlock:
        d[key] = value

在没有抓住锁的情况下从单独的线程获取dict的大小是否安全,只依赖于GIL?

def count():
    return len(d)

假设我不关心准确获取正确的值,只考虑count()期间某些时候正确的值。

1 个答案:

答案 0 :(得分:1)

我不推荐它,但是,GIL会保护它。在<script src="cordova.js"></script>电话会议期间,GIL无法发布。