设为首页 加入收藏

TOP

第三十三天- 线程创建、join、守护线程、死锁(三)
2018-12-03 22:08:40 】 浏览:198
Tags:三十三天 线程 创建 join 守护 死锁
 

  RLock管理一个内置的计数器,
  每当调用acquire()时内置计数器-1;
  调用release() 时内置计数器+1;
  计数器不能小于0;当计数器为0时,acquire()将阻塞线程直到其他线程调用release()。

 

 

 1 # 递归锁解决死锁现象
 2 import time
 3 from threading import Thread,Lock,RLock
 4 
 5 
 6 def func1(lock_A,lock_B):
 7     lock_A.acquire()
 8     print('张全蛋拿到了A锁')
 9     time.sleep(0.5)
10     lock_B.acquire()
11     print('张全蛋拿到了B锁')
12     lock_B.release()
13     lock_A.release()
14 
15 
16 def func2(lock_A,lock_B):
17     lock_B.acquire()
18     print('赵二狗拿到了B锁')
19     lock_A.acquire()
20     print('赵二狗拿到了A锁')
21     lock_A.release()
22     lock_B.release()
23 
24 
25 if __name__ == '__main__':
26 
27     # lock_A = Lock()
28     # lock_B = Lock()
29     lock_A = lock_B = RLock()
30     t1 = Thread(target=func1,args=(lock_A,lock_B,))
31     t2 = Thread(target=func2,args=(lock_A,lock_B,))
32     t1.start()
33     t2.start()
递归锁解决死锁现象

 

首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇06 day小数据池 下一篇python小数据池 is和 == 再谈编码

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目