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正则表达式的使用范例详解
Aug 08 Python
使用Python编写简单的画图板程序的示例教程
Dec 08 Python
Python解决抛小球问题 求小球下落经历的距离之和示例
Feb 01 Python
Python遍历pandas数据方法总结
Feb 09 Python
TensorFlow数据输入的方法示例
Jun 19 Python
Django使用paginator插件实现翻页功能的实例
Oct 24 Python
python 将大文件切分为多个小文件的实例
Jan 14 Python
python使用参数对嵌套字典进行取值的方法
Apr 26 Python
python实现连连看辅助(图像识别)
Mar 25 Python
用Python生成HTML表格的方法示例
Mar 06 Python
Python的历史与优缺点整理
May 26 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原理的opcodes(操作码)
2010/10/26 PHP
PHP中time(),date(),mktime()区别介绍
2013/09/28 PHP
使用php转义输出HTML到JavaScript
2015/03/27 PHP
迪菲-赫尔曼密钥交换(Diffie?Hellman)算法原理和PHP实现版
2015/05/12 PHP
php生成动态验证码gif图片
2015/10/19 PHP
PHP单例模式应用示例【多次连接数据库只实例化一次】
2018/12/18 PHP
jQuery 获取对象 根据属性、内容匹配, 还有表单元素匹配
2010/05/31 Javascript
基于jquery 的一个progressbar widge
2010/10/29 Javascript
js编写trim()函数及正则表达式的运用
2013/10/24 Javascript
原生js ActiveXObject获取execl里面的值
2013/11/01 Javascript
JavaScript控制网页平滑滚动到指定元素位置的方法
2015/04/17 Javascript
AngularJS 使用$sce控制代码安全检查
2016/01/05 Javascript
学习JavaScript设计模式之责任链模式
2016/01/18 Javascript
基于jQuery实现歌词滚动版音乐播放器的代码
2016/09/17 Javascript
Jquery on绑定的事件 触发多次实例代码
2016/12/08 Javascript
bootstrap栅格系统示例代码分享
2017/05/22 Javascript
Webpack实战加载SVG的方法
2017/12/26 Javascript
解决eclipse中没有js代码提示的问题
2018/10/10 Javascript
微信小程序如何调用图片接口API并居中显示
2019/06/29 Javascript
如何使用Jquery动态生成二级选项列表
2020/02/06 jQuery
Vue 数据绑定的原理分析
2020/11/16 Javascript
[01:33]PWL开团时刻DAY2-开雾与反开雾
2020/10/31 DOTA
python判断一个集合是否包含了另外一个集合中所有项的方法
2015/06/30 Python
python2.x实现人民币转大写人民币
2018/06/20 Python
用pandas中的DataFrame时选取行或列的方法
2018/07/11 Python
Python QQBot库的QQ聊天机器人
2019/06/19 Python
关于python中plt.hist参数的使用详解
2019/11/28 Python
Python如何基于rsa模块实现非对称加密与解密
2020/01/03 Python
python subprocess pipe 实时输出日志的操作
2020/12/05 Python
美国值得信赖的婚恋交友网站:eHarmony
2018/10/04 全球购物
MIRTA官网:手工包,100%意大利制造
2020/02/11 全球购物
幼儿园大班毕业感言
2014/02/06 职场文书
教师节感恩老师演讲稿
2014/08/28 职场文书
党员对照检查材料整改措施思想汇报
2014/09/26 职场文书
库房管理员岗位职责
2015/02/12 职场文书
社区法制宣传日活动总结
2015/05/05 职场文书