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定时器使用示例分享
Feb 16 Python
在Python中使用异步Socket编程性能测试
Jun 25 Python
Python实现抓取城市的PM2.5浓度和排名
Mar 19 Python
python实现文本文件合并
Dec 29 Python
Python 绘图和可视化详细介绍
Feb 11 Python
Python使用matplotlib和pandas实现的画图操作【经典示例】
Jun 13 Python
python3使用flask编写注册post接口的方法
Dec 28 Python
Python构建图像分类识别器的方法
Jan 12 Python
10款最好的Python开发编辑器
Jul 03 Python
python中导入 train_test_split提示错误的解决
Jun 19 Python
10个python爬虫入门实例(小结)
Nov 01 Python
matplotlib之pyplot模块坐标轴标签设置使用(xlabel()、ylabel())
Feb 22 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文本数据库的搜索方法
2006/10/09 PHP
一个好用的分页函数
2006/11/16 PHP
php数组函数序列之array_flip() 将数组键名与值对调
2011/11/07 PHP
smarty模板局部缓存方法使用示例
2014/06/17 PHP
简单了解将WordPress中的工具栏移到底部的小技巧
2015/12/31 PHP
php获取小程序码的实现代码(B类接口)
2020/06/13 PHP
Javascript select下拉框操作常用方法
2009/11/09 Javascript
JavaScript 输入框内容格式验证代码
2010/02/11 Javascript
jQuery EasyUI API 中文文档 - Form表单
2011/10/06 Javascript
jQuery中的insertBefore(),insertAfter(),after(),before()区别介绍
2016/09/01 Javascript
微信小程序商品到详情的实现
2017/06/27 Javascript
Three.js实现浏览器变动时进行自适应的方法
2017/09/26 Javascript
javaScript之split与join的区别(详解)
2017/11/08 Javascript
详谈vue+webpack解决css引用图片打包后找不到资源文件的问题
2018/03/06 Javascript
使用vue-cli打包过程中的步骤以及问题的解决
2018/05/08 Javascript
vue element upload组件 file-list的动态绑定实现
2019/10/11 Javascript
js消除图片小游戏代码
2019/12/11 Javascript
JS removeAttribute()方法实现删除元素的某个属性
2021/01/11 Javascript
Tornado Web服务器多进程启动的2个方法
2014/08/04 Python
Python获取电脑硬件信息及状态的实现方法
2014/08/29 Python
Python复制目录结构脚本代码分享
2015/03/06 Python
老生常谈python之鸭子类和多态
2017/06/13 Python
Python数据结构与算法之常见的分配排序法示例【桶排序与基数排序】
2017/12/15 Python
深入理解Python 关于supper 的 用法和原理
2018/02/28 Python
Python定义函数功能与用法实例详解
2019/04/08 Python
Python表达式的优先级详解
2020/02/18 Python
django rest framework 自定义返回方式
2020/07/12 Python
torchxrayvision包安装过程(附pytorch1.6cpu版安装)
2020/08/26 Python
如何在scrapy中捕获并处理各种异常
2020/09/28 Python
俄罗斯名牌服装网上商店:UNIQUE FABRIC
2019/07/25 全球购物
爷爷追悼会答谢词
2014/01/24 职场文书
毕业生简历自我评价范文
2014/04/09 职场文书
初婚初育证明范本
2014/11/24 职场文书
2014年个人工作总结模板
2014/12/15 职场文书
15个值得收藏的JavaScript函数
2021/09/15 Javascript
Java实现学生管理系统(IO版)
2022/02/24 Java/Android