【发布时间】:2020-02-17 11:40:18
【问题描述】:
我在一些 Python 代码中有一个相对简单的场景,其中我有两个线程,其中一个设置一个值,另一个正在等待它被设置。我的直觉是联系threading.Condition 来实现这一点,但我想知道是否可以简单地使用threading.Event。
所以,我有这样的事情:
value = None
readyToRead = threading.Event()
def set():
# executes in thread 1
global value
value = computeValue()
readyToRead.set()
def get():
# executes in thread 2
readyToRead.wait()
useValue(value)
我想我很不安,因为对value 的访问实际上不受互斥体保护,而且我认为至少在某些语言中,仅仅依靠代码中的语句所暗示的顺序可能并不安全。
这是在 Python 中对Event 的有效使用吗?
【问题讨论】:
标签: python multithreading events