互斥锁的改进

 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
正是江南好风景
原文地址:https://www.cnblogs.com/monsterhy123/p/12682830.html