python线程锁(thread)学习示例


Posted in Python onDecember 04, 2013
# encoding: UTF-8
import thread
import time# 一个用于在线程中执行的函数
def func():
    for i in range(5):
        print 'func'
        time.sleep(1)
    # 结束当前线程
    # 这个方法与thread.exit_thread()等价
    thread.exit() # 当func返回时,线程同样会结束
# 启动一个线程,线程立即开始运行
# 这个方法与thread.start_new_thread()等价
# 第一个参数是方法,第二个参数是方法的参数
thread.start_new(func, ()) # 方法没有参数时需要传入空tuple
# 创建一个锁(LockType,不能直接实例化)
# 这个方法与thread.allocate_lock()等价
lock = thread.allocate()
# 判断锁是锁定状态还是释放状态
print lock.locked()
# 锁通常用于控制对共享资源的访问
count = 0
# 获得锁,成功获得锁定后返回True
# 可选的timeout参数不填时将一直阻塞直到获得锁定
# 否则超时后将返回False
if lock.acquire():
    count += 1
    # 释放锁
    lock.release()
# thread模块提供的线程都将在主线程结束后同时结束
time.sleep(6)

thread 模块提供的其他方法:
thread.interrupt_main(): 在其他线程中终止主线程。
thread.get_ident(): 获得一个代表当前线程的魔法数字,常用于从一个字典中获得线程相关的数据。这个数字本身没有任何含义,并且当线程结束后会被新线程复用。

thread还提供了一个ThreadLocal类用于管理线程相关的数据,名为 thread._local,threading中引用了这个类。

Python 相关文章推荐
python读取csv文件示例(python操作csv)
Mar 11 Python
Python中实现字符串类型与字典类型相互转换的方法
Aug 18 Python
跟老齐学Python之编写类之三子类
Oct 11 Python
python继承和抽象类的实现方法
Jan 14 Python
Python Web框架Flask中使用七牛云存储实例
Feb 08 Python
详解使用python crontab设置linux定时任务
Dec 08 Python
详解django+django-celery+celery的整合实战
Mar 19 Python
Python数据持久化存储实现方法分析
Dec 21 Python
keras做CNN的训练误差loss的下降操作
Jun 22 Python
Python趣味实例,实现一个简单的抽奖刮刮卡
Jul 18 Python
python不同版本的_new_不同点总结
Dec 09 Python
Python中基础数据类型 set集合知识点总结
Aug 02 Python
pyv8学习python和javascript变量进行交互
Dec 04 #Python
python使用PyV8执行javascript代码示例分享
Dec 04 #Python
python解析xml文件实例分享
Dec 04 #Python
python抓取某汽车网数据解析html存入excel示例
Dec 04 #Python
python共享引用(多个变量引用)示例代码
Dec 04 #Python
python函数返回多个值的示例方法
Dec 04 #Python
python sys模块sys.path使用方法示例
Dec 04 #Python
You might like
DOTA2 1月28日更新:监管系统降临刀塔世界
2021/01/28 DOTA
php 团购折扣计算公式
2011/11/24 PHP
yii框架中的Url生产问题小结
2012/01/16 PHP
浅析php变量作用域的一些问题
2013/08/08 PHP
thinkPHP+ajax实现统计页面pv浏览量的方法
2017/03/15 PHP
php面向对象之反射功能与用法分析
2017/03/29 PHP
javascript常用方法、属性集合及NodeList 和 HTMLCollection 的浏览器差异
2010/12/25 Javascript
js获取单选框或复选框值及操作
2012/12/18 Javascript
JS 两个字符串时间的天数差计算
2013/08/25 Javascript
jQuery提交多个表单的小技巧
2014/07/27 Javascript
JavaScript设计模式之工厂方法模式介绍
2014/12/28 Javascript
JS中获取函数调用链所有参数的方法
2015/05/07 Javascript
readonly和disabled属性的区别
2015/07/26 Javascript
Javascript中的 “&” 和 “|” 详解
2017/02/02 Javascript
微信小程序wx.uploadfile 本地文件转base64的实现代码
2018/06/28 Javascript
详解React中合并单元格的正确写法
2019/01/08 Javascript
angularjs自定义过滤器demo示例
2019/08/24 Javascript
JavaScript对象访问器Getter及Setter原理解析
2020/12/08 Javascript
[00:32]2018DOTA2亚洲邀请赛出场——VP
2018/04/04 DOTA
Python中除法使用的注意事项
2014/08/21 Python
Python下的Softmax回归函数的实现方法(推荐)
2017/01/26 Python
python对html过滤处理的方法
2018/10/21 Python
Python读取mat文件,并保存为pickle格式的方法
2018/10/23 Python
python递归下载文件夹下所有文件
2019/08/31 Python
Python标准库itertools的使用方法
2020/01/17 Python
Django ModelForm操作及验证方式
2020/03/30 Python
使用CSS3实现圆角,阴影,透明
2014/12/23 HTML / CSS
CSS3 实现发光边框特效
2020/11/11 HTML / CSS
南非领先的在线旅行社:Travelstart南非
2016/09/04 全球购物
英国在线花园中心:You Garden
2018/06/03 全球购物
C#如何调用Word并打开一个Word文档
2013/05/08 面试题
土木工程专业自荐信
2013/10/04 职场文书
保密协议书范本
2014/04/22 职场文书
优秀员工演讲稿
2014/05/19 职场文书
生物学专业求职信
2014/07/23 职场文书
初中化学教学反思
2016/02/22 职场文书