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中assert用法实例分析
Apr 30 Python
分析用Python脚本关闭文件操作的机制
Jun 28 Python
利用Python如何批量更新服务器文件
Jul 29 Python
解决python测试opencv时imread导致的错误问题
Jan 26 Python
Python中的引用知识点总结
May 20 Python
django页面跳转问题及注意事项
Jul 18 Python
python Elasticsearch索引建立和数据的上传详解
Aug 04 Python
python web框架中实现原生分页
Sep 08 Python
Python编写打字训练小程序
Sep 26 Python
python实现UDP协议下的文件传输
Mar 20 Python
Python下划线5种含义代码实例解析
Jul 10 Python
Python实现信息管理系统
Jun 05 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/11/25 PHP
php把数组值转换成键的方法
2015/07/13 PHP
PHP微信开发之文本自动回复
2016/06/23 PHP
TP5框架实现签到功能的方法分析
2020/04/05 PHP
javascript实现动态侧边栏代码
2014/02/19 Javascript
网页实时显示服务器时间和javscript自运行时钟
2014/06/09 Javascript
jquery 实现input输入什么div图层显示什么
2014/06/15 Javascript
javascript+html5实现仿flash滚动播放图片的方法
2015/04/27 Javascript
jQuery与getJson结合的用法实例
2015/08/07 Javascript
JS扩展类,克隆对象与混合类实例分析
2016/11/26 Javascript
jQuery联动日历的实例解析
2016/12/02 Javascript
微信小程序开发实现的IP地址查询功能示例
2019/03/28 Javascript
使用Vue.observable()进行状态管理的实例代码详解
2019/05/26 Javascript
vue 使用高德地图vue-amap组件过程解析
2019/09/07 Javascript
在博客园博文中添加自定义右键菜单的方法详解
2020/02/05 Javascript
跟老齐学Python之总结参数的传递
2014/10/10 Python
python字典多键值及重复键值的使用方法(详解)
2016/10/31 Python
Python 转义字符详细介绍
2017/03/21 Python
python爬虫入门教程--正则表达式完全指南(五)
2017/05/25 Python
python用pickle模块实现“增删改查”的简易功能
2017/06/07 Python
使用Python的toolz库开始函数式编程的方法
2018/11/15 Python
python3使用print打印带颜色的字符串代码实例
2019/08/22 Python
python3 下载网络图片代码实例
2019/08/27 Python
手把手教你Python yLab的绘制折线图的画法
2019/10/23 Python
python关闭占用端口方式
2019/12/17 Python
使用wxpy实现自动发送微信消息功能
2020/02/28 Python
python爬虫开发之selenium模块详细使用方法与实例全解
2020/03/09 Python
numpy矩阵数值太多不能全部显示的解决
2020/05/14 Python
使用AJAX和Django获取数据的方法实例
2020/10/25 Python
CSS3实现跳动的动画效果
2016/09/12 HTML / CSS
简述安装Slackware Linux系统的过程
2012/01/12 面试题
高考标语大全
2014/06/05 职场文书
垃圾桶标语
2014/06/24 职场文书
爱耳日宣传活动总结
2014/07/05 职场文书
邹越感恩父母演讲稿
2014/08/28 职场文书
个人更名证明
2015/06/23 职场文书