Python多线程互斥锁
2016-04-21 21:57
525 查看
import threading import time num=0 def Mylock(lock): global num lock.acquire() num=num+1 time.sleep(1) print num, lock.release() lock=threading.Lock() for item in range(5): t=threading.Thread(target=Mylock,args=(lock,)) t.start() 1 2 3 4 5 #可以去掉lock,那么会发现输出为55555,这说明一个问题,当一个线程执行到time.sleep(1)时,其它线程开始计算num=num+1,极短的时间内五个线程全部都执行了num这句,然后大家一起等一秒后输出,所以结果都是5
相关文章推荐
- Python高级特性——学习笔记
- cmd命令行交互执行python引入模块时提示ImportError: No module named xxx
- Python函数——学习笔记
- python语言的解释性执行问题(备份一下,以供以后学习参考)
- Python框架之Tornado(四)源码之褪去模板外衣
- 菜鸟入门_Python_机器学习(4)_PCA和MDA降维和聚类
- Python框架之Tornado(四)源码之褪去模板外衣的前戏
- Python框架之Tornado(四)源码之褪去模板外衣的前戏
- Python语言快速入门
- Python框架之Tornado(二)请求阶段
- 菜鸟入门_Python_机器学习(3)_回归
- 安装Python及后续
- Python框架之Tornado(一)
- Python框架之Tornado(一)
- Python之Web框架
- Python 装饰器(进阶篇)
- Python 装饰器(进阶篇)
- python的一些细节(1)
- differences in python 2 and python 3
- 初识Python