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 09 Python
Python实现方便使用的级联进度信息实例
May 05 Python
Python实现冒泡排序的简单应用示例
Dec 11 Python
用python制作游戏外挂
Jan 04 Python
浅谈Python用QQ邮箱发送邮件时授权码的问题
Jan 29 Python
使用python3+xlrd解析Excel的实例
May 04 Python
Python查找最长不包含重复字符的子字符串算法示例
Feb 13 Python
Python + Requests + Unittest接口自动化测试实例分析
Dec 12 Python
pytorch中的weight-initilzation用法
Jun 24 Python
Python 执行矩阵与线性代数运算
Aug 01 Python
No module named ‘win32gui‘ 的解决方法(踩坑之旅)
Feb 18 Python
Python 制作自动化翻译工具
Apr 25 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+dojo 的数据库保存拖动布局的一个方法dojo 这里下载
2007/03/07 PHP
用C/C++扩展你的PHP 为你的php增加功能
2012/09/06 PHP
学习php设计模式 php实现命令模式(command)
2015/12/08 PHP
Apache无法自动跳转却显示目录的解决方法
2020/11/30 PHP
php图像处理函数imagecopyresampled用法详解
2016/12/02 PHP
php通过各种函数判断0和空
2020/07/04 PHP
使用PHPUnit进行单元测试并生成代码覆盖率报告的方法
2019/03/08 PHP
getElementByIdx_x js自定义getElementById函数
2012/01/24 Javascript
js写一个弹出层并锁屏效果实现代码
2012/12/07 Javascript
javascript操作html控件实例(javascript添加html)
2013/12/02 Javascript
鼠标移到图片上变大显示而不是放大镜效果
2014/06/15 Javascript
JQuery中DOM事件冒泡实例分析
2015/06/13 Javascript
Bootstrap中的Panel和Table全面解析
2016/06/13 Javascript
jQuery树控件zTree使用方法详解(一)
2017/02/28 Javascript
详解vue 模拟后台数据(加载本地json文件)调试
2017/08/25 Javascript
基于VUE移动音乐WEBAPP跨域请求失败的解决方法
2018/01/16 Javascript
Javascript 编码约定(编码规范)
2018/03/11 Javascript
layerui代码控制tab选项卡,添加,关闭的实例
2019/09/04 Javascript
详解BootStrap表单验证中重置BootStrap-select验证提示不清除的坑
2019/09/17 Javascript
layui+SSM的数据表的增删改实例(利用弹框添加、修改)
2019/09/27 Javascript
vue路由权限校验功能的实现代码
2020/06/07 Javascript
vue项目实现设置根据路由高亮对应的菜单项操作
2020/08/06 Javascript
Python列表生成器的循环技巧分享
2015/03/06 Python
Python连接Mssql基础教程之Python库pymssql
2018/09/16 Python
python调用c++ ctype list传数组或者返回数组的方法
2019/02/13 Python
keras 指定程序在某块卡上训练实例
2020/06/22 Python
急诊科护士自我鉴定
2013/10/14 职场文书
销售人员获奖感言
2014/02/05 职场文书
信息专业毕业生五年职业规划参考
2014/02/06 职场文书
班干部竞选演讲稿
2014/04/24 职场文书
党员批评与自我批评总结
2014/10/15 职场文书
2014年应急工作总结
2014/12/11 职场文书
思想政治表现评语
2015/01/04 职场文书
邀请函怎么写
2015/01/30 职场文书
报案材料怎么写
2015/05/25 职场文书
Java实现注册登录跳转
2022/06/16 Java/Android