我对python中的并发编程提出了一个问题。
假设我有两个线程,thread-R和thread-W。 Thread-R只读取一个变量,Thread-W定期更新这个变量。此外,只需要Thread-R由于某种原因不会崩溃,并且线程-R只获取在更新线程-W之前或之后存储的值。
所以,非常简单的设置。但是,我问自己,由于某种原因,thread-R可能从变量中得到错误的值。
所以我的问题是:当线程-W更新值时,是否需要锁定变量,以便线程-R被阻塞,直到线程-W完成更新变量?
更新: 好的,基本上。我有像
这样的对象class MyObject(object):
def __init__(self):
self.A = "A String"
这些对象存储在如下的字典中:
{key1 : myobject_instance_1, key2 : myobject_instance_2, ... }
因此,thread-W每次都会更新实例变量“A”,但不会更新字典本身。