10分钟的时候 讲RLOCK时 运行结果请解释下
运行结果为
start lock
locked one
start lock
locked two
N----5 balance 0
start lock
locked one
locked two
-N--- 8;balance 0
strat lock
lock one
lock two
是怎么运行来的 详细说明下
还有最后的
print(the last balance)
问什么没有输出
16
收起
正在回答 回答被采纳积分+1
2回答
好帮手乔木
2020-03-01 11:45:28
同学你好:
RLock:多重锁,已经获得该锁的线程可以继续多次获得该锁,在同一线程中可以被多次acquire。如果使用RLock,那么acquire和release必须成对出现,调用了n次acquire锁请求,则必须调用n次的release才能在线程中释放锁对象。直到一个线程所有的acquire都被release,其他的线程才能获得资源。
执行顺序从上到下。由于加上锁之后,每次只能执行一个任务,所以哪个线程任务先抢上执行的机会就先执行那个线程。
同学没有输出:
print(the last balance)
是由于要执行100线程任务,同学可以调低执行的次数。
如果我解决了同学的问题,请采纳!学习愉快^_^。
1.Python零基础入门
- 参与学习 人
- 提交作业 2727 份
- 解答问题 8160 个
想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星