码迷,mamicode.com
首页 > 其他好文 > 详细

互斥锁的改进

时间:2020-04-11 23:45:23      阅读:84      评论:0      收藏:0      [点我收藏+]

标签:span   release   nbsp   导致   time   for   from   code   互斥   

 1 import time
 2 from threading import Thread,Lock
 3 #定义全局变量num
 4 num=0
 5 #创建一把互斥锁
 6 lock = Lock()
 7 def test1():
 8     global num
 9     ‘‘‘
10     在两个线程中都调用上锁的方法,则这两个线程就会抢着上锁,
11     如果有1方成功上锁,那么导致另外一方会堵塞(一直等待)直到这个锁被解开
12     ‘‘‘
13     for i in range(100000):
14         lock.acquire()#上锁
15         num+=1
16         lock.release() 
17     print(test1输出num:,num)
18 
19 def test2():
20     global num
21     for i in range(100000):
22         lock.acquire()  # 上锁
23         num+=1
24         lock.release()
25     print(test2输出num:,num)
26 
27 if __name__==__main__:
28     t1 = Thread(target=test1)
29     t2 = Thread(target=test2)
30     t1.start()
31     t2.start()
32     t1.join()
33     t2.join()
1 test1输出num:181043
2 test2输出num:200000

 

互斥锁的改进

标签:span   release   nbsp   导致   time   for   from   code   互斥   

原文地址:https://www.cnblogs.com/monsterhy123/p/12682830.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!