python锁误会

时间:2017-07-27 11:37:08

标签: python

我觉得很难理解以下多线程同步代码,希望有人能指出我的误解在哪里。

user1_1
user2_1
user1_2
user2_2

运行结果是:

find

根据我的理解,这两个线程应该处于死锁状态,因为user1获得了“cond”。并在' self.cond.wait()'等待用户2的通知而user2被阻止在' self.cond.acquire()'并且无法达到self.cond.notify()'。似乎他们都被封锁了,等待另一个人给他们所需要的东西,所以他们应该陷入僵局。

我对锁的误解在哪里?

1 个答案:

答案 0 :(得分:0)

您的程序可以正常工作。没有死锁,因为Condition.wait()释放锁,允许user2获取它并继续。