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中实现php的var_dump函数功能
Jan 21 Python
Google开源的Python格式化工具YAPF的安装和使用教程
May 31 Python
python 获取一个值在某个区间的指定倍数的值方法
Nov 12 Python
对python GUI实现完美进度条的示例详解
Dec 13 Python
Python图像处理之直线和曲线的拟合与绘制【curve_fit()应用】
Dec 26 Python
基于Python在MacOS上安装robotframework-ride
Dec 28 Python
Django 迁移、操作数据库的方法
Aug 02 Python
一文轻松掌握python语言命名规范规则
Jun 18 Python
用python写爬虫简单吗
Jul 28 Python
在 Python 中使用 MQTT的方法
Aug 18 Python
详解pytorch tensor和ndarray转换相关总结
Sep 03 Python
python opencv检测直线 cv2.HoughLinesP的实现
Jun 18 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插入排序实现代码
2013/04/04 PHP
javascript 数组学习资料收集
2010/04/11 Javascript
javascript中的作用域scope介绍
2010/12/28 Javascript
裁剪字符串trim()自定义改进版
2013/04/10 Javascript
JavaScript String.replace函数参数实例说明
2013/06/06 Javascript
js动态往表格的td中添加图片并注册事件
2014/06/12 Javascript
javascript实现左右控制无缝滚动
2014/12/31 Javascript
Js控制滑轮左右滑动实例
2015/02/13 Javascript
nodejs如何获取时间戳与时间差
2016/08/03 NodeJs
jQuery EasyUI编辑DataGrid用combobox实现多级联动
2016/08/29 Javascript
nodejs的HTML分析利器node-jquery用法浅析
2016/11/08 NodeJs
在vue中实现简单页面逆传值的方法
2017/11/27 Javascript
element-ui 中的table的列隐藏问题解决
2018/08/24 Javascript
Vue递归组件+Vuex开发树形组件Tree--递归组件的简单实现
2019/04/01 Javascript
微信小程序文字显示换行问题
2019/07/28 Javascript
js实现自动播放匀速轮播图
2020/02/06 Javascript
JS localStorage存储对象,sessionStorage存储数组对象操作示例
2020/02/15 Javascript
Vue 按照创建时间和当前时间显示操作(刚刚,几小时前,几天前)
2020/09/10 Javascript
python进阶教程之词典、字典、dict
2014/08/29 Python
一个基于flask的web应用诞生 bootstrap框架美化(3)
2017/04/11 Python
利用numpy+matplotlib绘图的基本操作教程
2017/05/03 Python
使用Python实现一个栈判断括号是否平衡
2018/08/23 Python
python 列表中[ ]中冒号‘:’的作用
2019/04/30 Python
pycharm修改file type方式
2019/11/19 Python
使用HTML5里的classList操作CSS类
2016/06/28 HTML / CSS
斯德哥尔摩通票:Stockholm Pass
2018/01/09 全球购物
初入社会应届生求职信
2013/11/18 职场文书
个人思想理论学习的自我鉴定
2013/11/30 职场文书
授权委托书范本
2014/04/03 职场文书
大学生学习面向未来的赶考思想汇报
2014/09/12 职场文书
聘任通知书
2015/09/21 职场文书
新学期开学寄语2016
2015/12/04 职场文书
领导干部学习心得体会
2016/01/23 职场文书
关于Javascript闭包与应用的详解
2021/04/22 Javascript
Redis实现分布式锁的五种方法详解
2022/06/14 Redis
在python中读取和写入CSV文件详情
2022/06/28 Python