死锁--day33

"""
----死锁----
死锁 指的是 锁 无法打开了 导致程序卡死

首先要明确 一把锁 时不会锁死的
就是有两把锁子,但是要是分别给了两个人,其中那个人都无法打开锁所有的锁,
导致程序无法执行下去

正常开发时 一把锁足够使用 不要开多把锁
"""

from multiprocessing import Process,Lock
import time
def task1(l1,l2,i):
l1.acquire()
print("盘子被%s抢走了" % i)
time.sleep(1)

l2.acquire()
print("筷子被%s抢走了" % i)
print("吃饭..")
l1.release()
l2.release()

def task2(l1,l2,i):

l2.acquire()
print("筷子被%s抢走了" % i)

l1.acquire()
print("盘子被%s抢走了" % i)

print("吃饭..")
l1.release()
l2.release()


if __name__ == '__main__':
l1 = Lock()
l2 = Lock()
Process(target=task1,args=(l1,l2,1)).start()
Process(target=task2,args=(l1,l2,2)).start()

猜你喜欢

转载自www.cnblogs.com/wenchen/p/10196787.html
今日推荐