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的Flask框架来搭建第一个Web应用程序
Jun 04 Python
Python利用QQ邮箱发送邮件的实现方法(分享)
Jun 09 Python
Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例
Jul 27 Python
实例详解Python模块decimal
Jun 26 Python
python根据时间获取周数代码实例
Sep 30 Python
Django文件上传与下载(FileFlid)
Oct 06 Python
Python 窗体(tkinter)下拉列表框(Combobox)实例
Mar 04 Python
python+OpenCV实现图像拼接
Mar 05 Python
Django Form设置文本框为readonly操作
Jul 03 Python
用于ETL的Python数据转换工具详解
Jul 21 Python
通俗易懂了解Python装饰器原理
Sep 17 Python
Python+Selenium随机生成手机验证码并检查页面上是否弹出重复手机号码提示框
Sep 21 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
php google或baidu分页代码
2009/11/26 PHP
30 个很棒的PHP开源CMS内容管理系统小结
2011/10/14 PHP
thinkphp路由规则使用示例详解和伪静态功能实现(apache重写)
2014/02/24 PHP
laravel unique验证、确认密码confirmed验证以及密码修改验证的方法
2019/10/16 PHP
javascript编程起步(第七课)
2007/01/10 Javascript
jQuery去掉字符串起始和结尾的空格(多种方法实现)
2013/04/01 Javascript
jQuery实现等比例缩放大图片让大图片自适应页面布局
2013/10/16 Javascript
再谈javascript原型继承
2014/11/10 Javascript
Javascript中的匿名函数与封装介绍
2015/03/15 Javascript
JavaScript将数字转换成大写中文的方法
2015/03/23 Javascript
Node.js与Sails ~项目结构与Mvc实现及日志机制
2015/10/14 Javascript
jQuery简单实现tab选项卡切换效果
2016/06/20 Javascript
bootstrap配合Masonry插件实现瀑布式布局
2017/01/18 Javascript
Ajax验证用户名或昵称是否已被注册
2017/04/05 Javascript
深入浅析Vue中的slots/scoped slots
2018/04/03 Javascript
JS中实现浅拷贝和深拷贝的代码详解
2019/06/05 Javascript
JavaScript队列结构Queue实现过程解析
2020/03/07 Javascript
解决vue 使用setTimeout,离开当前路由setTimeout未销毁的问题
2020/07/21 Javascript
vue-cli3访问public文件夹静态资源报错的解决方式
2020/09/02 Javascript
Python日期操作学习笔记
2008/10/07 Python
高效测试用例组织算法pairwise之Python实现方法
2017/07/19 Python
Python插件virtualenv搭建虚拟环境
2017/11/20 Python
Window10+Python3.5安装opencv的教程推荐
2018/04/02 Python
对Pandas DataFrame缺失值的查找与填充示例讲解
2018/11/06 Python
python异步存储数据详解
2019/03/19 Python
Python实现分数序列求和
2020/02/25 Python
Python中的__init__作用是什么
2020/06/09 Python
一文解决django 2.2与mysql兼容性问题
2020/07/15 Python
美国猫狗药物和用品网站:PetCareRx
2017/01/05 全球购物
俄罗斯家居用品购物网站:Евродом
2020/11/21 全球购物
英语文学专业学生的自我评价
2013/10/31 职场文书
公司离职证明标准格式
2014/11/18 职场文书
2014个人年度工作总结
2014/12/15 职场文书
财务稽核岗位职责
2015/04/13 职场文书
Redis三种集群模式详解
2021/10/05 Redis