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 相关文章推荐
仅用500行Python代码实现一个英文解析器的教程
Apr 02 Python
Python建立Map写Excel表实例解析
Jan 17 Python
数据清洗--DataFrame中的空值处理方法
Jul 03 Python
详解pytorch 0.4.0迁移指南
Jun 16 Python
python的命名规则知识点总结
Oct 04 Python
python numpy 反转 reverse示例
Dec 04 Python
Spring实战之使用util:命名空间简化配置操作示例
Dec 09 Python
使用Python 自动生成 Word 文档的教程
Feb 13 Python
如何在keras中添加自己的优化器(如adam等)
Jun 19 Python
Django restful framework生成API文档过程详解
Nov 12 Python
在Python中实现字典反转案例
Dec 05 Python
django inspectdb 操作已有数据库数据的使用步骤
Feb 07 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中通过curl模拟登陆discuz论坛的实现代码
2012/02/16 PHP
PHP获取网址的顶级域名函数代码
2012/09/24 PHP
用php随机生成福彩双色球号码的2种方法
2013/02/04 PHP
Laravel中Facade的加载过程与原理详解
2017/09/22 PHP
分析php://output和php://stdout的区别
2018/05/06 PHP
URI、URL和URN之间的区别与联系
2006/12/20 Javascript
js 图片缩放(按比例)控制代码
2009/05/27 Javascript
读jQuery之六 缓存数据功能介绍
2011/06/21 Javascript
纯js简单日历实现代码
2013/10/05 Javascript
javascript数字时钟示例分享
2014/04/23 Javascript
node.js中使用q.js实现api的promise化
2014/09/17 Javascript
jQuery实现contains方法不区分大小写的方法
2015/02/13 Javascript
微信jssdk在iframe页面失效问题的解决措施
2016/03/03 Javascript
JavaScript编写页面半透明遮罩效果的简单示例
2016/05/09 Javascript
js 定位到某个锚点的方法
2016/11/19 Javascript
实例解析jQuery工具函数
2016/12/01 Javascript
js判断手机号是否正确并返回的实现代码
2017/01/17 Javascript
快速使用node.js进行web开发详解
2017/04/26 Javascript
bootstrap timepicker在angular中取值并转化为时间戳
2017/06/13 Javascript
mescroll.js上拉加载下拉刷新组件使用详解
2017/11/13 Javascript
浅谈ajax请求不同页面的微信JSSDK问题
2018/02/26 Javascript
JavaScript轮播停留效果的实现思路
2018/05/24 Javascript
Vue基础配置讲解
2019/11/29 Javascript
Python解决八皇后问题示例
2018/04/22 Python
python生成九宫格图片
2018/11/19 Python
Flask框架踩坑之ajax跨域请求实现
2019/02/22 Python
Django 接收Post请求数据,并保存到数据库的实现方法
2019/07/12 Python
python实现最短路径的实例方法
2020/07/19 Python
Python测试框架:pytest学习笔记
2020/10/20 Python
Numpy数组的广播机制的实现
2020/11/03 Python
倩碧英国官网:Clinique英国
2018/08/10 全球购物
山海经纬软件测试笔试题和面试题
2013/04/02 面试题
中考标语大全
2014/06/05 职场文书
运动会入场口号
2014/06/07 职场文书
关爱留守儿童标语
2014/06/18 职场文书
学雷锋志愿者活动总结
2014/06/27 职场文书