#使用类的封装来定义线程 import threading import time #代表🐟的锁 mutex_Yu=threading.Lock() #代表熊掌的锁 mutex_XiongZhang=threading.Lock() #创建一个类 类里边自定义一个方法 重写run函数 class MyThread1(threading.Thread): def run(self): mutex_Yu.acquire() #得到🐟这把锁 print("线程1已经得到鱼了") time.sleep(1) mutex_XiongZhang.acquire() #得到熊掌这把锁 print("线程1得到熊掌了") mutex_XiongZhang.release() #释放熊掌 mutex_Yu.release()#释放鱼 class MyThread2(threading.Thread): def run(self): mutex_XiongZhang.acquire() # 得到熊掌这把锁 print("线程2得到熊掌了") time.sleep(1) mutex_Yu.acquire() # 得到🐟这把锁 print("线程2已经得到鱼了") mutex_Yu.release() # 释放鱼 mutex_XiongZhang.release() # 释放熊掌 #mutex_TianTang=threading.Lock() # 一把去天堂的锁 Lock为互斥锁:只有一个人可以拿到 具有唯一性 可以使用逻辑锁来避免这种情况 mutex_TianTang=threading.RLock() #使用逻辑锁 class MyThread3(threading.Thread): def run(self): mu
死锁 Lock互斥锁 RLock逻辑锁
最新推荐文章于 2024-05-19 01:31:19 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)