rlock多重锁
老师,rlock是可以上多重锁,上锁的目的是为了在进行一个线程的时候防止别的线程进来执行,上一个锁rlock就可以实现这样的方法,我用lock也可以,用rlock也可以。那为什么要上多重锁呢,还要多次解锁。有没有什么例子
19
收起
正在回答
1回答
同学,你好。rlock是可以给一个线程多次上锁,由于每个进程间相互竞争的资源不同,所以一个线程会出现上锁不同资源的情况,这样就只在相互竞争的资源中上锁,而不是一下子把一个线程的所有资源都上锁,提高了资源的利用率。例如当a资源的锁被释放,b资源还存在竞争关系时,a资源就可以供其他线程利用了,如:
import threading # 获得一把锁 your_lock = threading.RLock() def fn(): your_lock.acquire() a = 1+1 print(a) your_lock.acquire() b = 2+2 print(b) your_lock.release() your_lock.release() if __name__ == '__main__': fn() fn()
如果解决了你的疑惑,请采纳,祝学习愉快~
1.Python零基础入门
- 参与学习 人
- 提交作业 2727 份
- 解答问题 8160 个
想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星