在一些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
的有效使用吗
是,这是事件的有效用例。。 值是线程保护的。 如果增加线程数,则必须在所有线程中等待。如果是这种情况,则可以使用信号量
相关问题 更多 >
编程相关推荐