使用notify()的python通知顺序

时间:2011-09-30 22:30:16

标签: python multithreading synchronization locking

假设我有以下代码:

master_lock = Lock()
x = Condition(master_lock)
y = Condition(master_lock)
z = Condition(master_lock)

def foo_z():
  with master_lock:
     x.notify()
     y.notify()
     z.wait()

def foo_y():
  with master_lock:
    x.notify()
    z.notify()
    y.wait()

当您在另一个监视器之前通知一个监视器时,是否可以确保第一个监视器的线程在第二个监视器的线程之前被唤醒,或者该命令是否完全与调用的顺序无关?在这个例子中,在foo_z中,你可以依赖等待x的线程在y之前运行,而x之前的x在foo_y中运行吗?

1 个答案:

答案 0 :(得分:0)

由于代码在多个线程中执行,因此无法保证订单。