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 相关文章推荐
开始着手第一个Django项目
Jul 15 Python
解读Python编程中的命名空间与作用域
Oct 16 Python
《Python学习手册》学习总结
Jan 17 Python
python2.7+selenium2实现淘宝滑块自动认证功能
Feb 24 Python
详谈python中冒号与逗号的区别
Apr 18 Python
Python实现合并同一个文件夹下所有PDF文件的方法示例
Apr 28 Python
Python 保持登录状态进行接口测试的方法示例
Aug 06 Python
python实现简单成绩录入系统
Sep 19 Python
基于Python新建用户并产生随机密码过程解析
Oct 08 Python
python 轮询执行某函数的2种方式
May 03 Python
python ansible自动化运维工具执行流程
Jun 24 Python
python中pymysql包操作数据库方法
Apr 19 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
ASP知识讲座四
2006/10/09 PHP
基于initPHP的框架介绍
2013/04/18 PHP
php 检查电子邮件函数(自写)
2014/01/16 PHP
PHP设计模式之迭代器模式
2016/06/17 PHP
完美解决在ThinkPHP控制器中命名空间的问题
2017/05/05 PHP
最新优化收藏到网摘代码(digg,diigo)
2007/02/07 Javascript
javaScript parseInt字符转化为数字函数使用小结
2009/11/05 Javascript
了解了这些才能开始发挥jQuery的威力
2013/10/10 Javascript
javascript ajax 仿百度分页函数
2013/10/29 Javascript
用C/C++来实现 Node.js 的模块(一)
2014/09/24 Javascript
JavaScript中自定义事件用法分析
2014/12/23 Javascript
深入理解JavaScript系列(48):对象创建模式(下篇)
2015/03/04 Javascript
JS设置cookie、读取cookie
2016/02/24 Javascript
移动端使用localStorage缓存Js和css文的方法(web开发)
2016/09/20 Javascript
详解javascript获取url信息的常见方法
2016/12/19 Javascript
vue.js获得当前元素的文字信息方法
2018/03/09 Javascript
在Vue中使用Echarts实例图的方法实例
2020/10/10 Javascript
Python中使用Beautiful Soup库的超详细教程
2015/04/30 Python
深入理解python中的闭包和装饰器
2016/06/12 Python
关于Python中异常(Exception)的汇总
2017/01/18 Python
python中matplotlib实现最小二乘法拟合的过程详解
2017/07/11 Python
对python3.4 字符串转16进制的实例详解
2019/06/12 Python
python 类的继承 实例方法.静态方法.类方法的代码解析
2019/08/23 Python
详解Python 重学requests发起请求的基本方式
2020/02/07 Python
pycharm 2020 1.1的安装流程
2020/09/29 Python
Python importlib模块重载使用方法详解
2020/10/13 Python
10个顶级Python实用库推荐
2021/03/04 Python
TobyDeals美国:在电子产品上获得最好的优惠和折扣
2019/08/11 全球购物
竞争上岗演讲稿
2014/01/05 职场文书
人力资源主管岗位职责
2014/01/29 职场文书
清明节扫墓活动方案
2014/03/02 职场文书
2016年世界艾滋病日宣传活动总结
2016/04/01 职场文书
CSS 圆形进度栏
2021/04/06 HTML / CSS
Java8中接口的新特性使用指南
2021/11/01 Java/Android
面试分析分布式架构Redis热点key大Value解决方案
2022/03/13 Redis
如何使用注解方式实现 Redis 分布式锁
2022/07/23 Redis