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给文本创立向量空间模型的教程
Apr 23 Python
基于Python 的进程管理工具supervisor使用指南
Sep 18 Python
python 写入csv乱码问题解决方法
Oct 23 Python
200行自定义python异步非阻塞Web框架
Mar 15 Python
Python书单 不将就
Jul 11 Python
Python实现按学生年龄排序的实际问题详解
Aug 29 Python
详解10个可以快速用Python进行数据分析的小技巧
Jun 24 Python
全面了解django的缓存机制及使用方法
Jul 22 Python
python中类的输出或类的实例输出为这种形式的原因
Aug 12 Python
python 消除 futureWarning问题的解决
Dec 25 Python
python 实现"神经衰弱"翻牌游戏
Nov 09 Python
基于tensorflow __init__、build 和call的使用小结
Feb 26 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
PHP zip扩展Linux下安装过程分享
2014/05/05 PHP
PHP实现QQ登录的开原理和实现过程
2018/02/04 PHP
Mozilla 表达式 __noSuchMethod__
2009/04/05 Javascript
一个简单的JavaScript数据缓存系统实现代码
2010/10/24 Javascript
javascript tips提示框组件实现代码
2010/11/19 Javascript
得到jQuery detach()后节点中的某个值实现代码
2013/02/05 Javascript
jquery等宽输出文字插件使用介绍
2013/09/18 Javascript
javascript图片预加载实例分析
2015/07/16 Javascript
javascript父子页面通讯实例详解
2015/07/17 Javascript
原生js实现自由拖拽弹窗代码demo
2016/06/29 Javascript
利用fecha进行JS日期处理
2016/11/21 Javascript
前端跨域的几种解决方式总结(推荐)
2017/08/16 Javascript
js实现每日签到功能
2018/11/29 Javascript
浅谈js闭包理解
2019/04/01 Javascript
详解Vue、element-ui、axios实现省市区三级联动
2019/05/07 Javascript
在nuxt中使用路由重定向的实例
2020/11/06 Javascript
[36:43]NB vs Optic 2018国际邀请赛小组赛BO1 B组加赛 8.19
2018/08/21 DOTA
[55:03]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第二场 11.20
2020/11/20 DOTA
[59:15]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第一场 11.20
2020/11/20 DOTA
rhythmbox中文名乱码问题解决方法
2008/09/06 Python
python获取mp3文件信息的方法
2015/06/15 Python
Python统计日志中每个IP出现次数的方法
2015/07/06 Python
python config文件的读写操作示例
2019/09/27 Python
利用Python自动化操作AutoCAD的实现
2020/04/01 Python
Django解决frame拒绝问题的方法
2020/12/18 Python
世界经理人咨询有限公司面试
2014/09/23 面试题
家庭教育先进个人事迹材料
2014/01/24 职场文书
转预备党员政审材料
2014/02/06 职场文书
大学毕业生求职自荐信
2014/02/20 职场文书
会计岗位描述
2014/02/22 职场文书
开学季活动策划方案
2014/02/28 职场文书
2015年清明节网上祭英烈活动总结
2015/03/26 职场文书
大学团日活动总结书
2015/05/11 职场文书
表彰大会新闻稿
2015/07/17 职场文书
CSS中实现动画效果-附案例
2022/02/28 HTML / CSS
Redis之RedisTemplate配置方式(序列和反序列化)
2022/03/13 Redis