This question already has answers here:
Thread Safety in Python's dictionary

(3个答案)


5年前关闭。




在多线程环境中,应在修改变量的值之前使用locking以避免并发写入。

所有类型的变量都适用吗?我专门考虑了dict键的值由不同线程更新的情况(可能同时,每个线程的键值不同)。

最佳答案

在您的情况下,您只是在更改与键关联的值,这是对字典的一项操作。 dict结构本身是线程安全的,请参见此处:Thread Safety in Python's dictionary,所以应该没问题。

如果要在存储在字典中的对象内部进行更改,则可能是安全的,但可能并非如此。如果一个特定的对象一次只被一个线程更改,那是安全的,但是如果出于某种原因,多个线程同时开始访问一个对象,那是不安全的。

关于python - 同时更新变量总是不安全的吗? [复制],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34089949/

10-12 22:00