Python多线程互斥锁

 1 import threading
 2 import time
 3 num=0
 4 def Mylock(lock):
 5     global num
 6     lock.acquire()
 7     num=num+1
 8     time.sleep(1)
 9     print num,
10     lock.release()
11 lock=threading.Lock()
12 for item in range(5):
13     t=threading.Thread(target=Mylock,args=(lock,))
14     t.start()
15 1 2 3 4 5
16 #可以去掉lock,那么会发现输出为55555,这说明一个问题,当一个线程执行到time.sleep(1)时,其它线程开始计算num=num+1,极短的时间内五个线程全部都执行了num这句,然后大家一起等一秒后输出,所以结果都是5

 

posted @ 2016-04-21 21:57  dreamfor  阅读(321)  评论(0编辑  收藏  举报