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中使用lambda高效操作列表的教程
Apr 24 Python
Python基于PycURL实现POST的方法
Jul 25 Python
Python实现将不规范的英文名字首字母大写
Nov 15 Python
使用python在本地电脑上快速处理数据
Jun 22 Python
python中使用zip函数出现错误的原因
Sep 28 Python
Python中super函数用法实例分析
Mar 18 Python
python如何获取列表中每个元素的下标位置
Jul 01 Python
python字符串Intern机制详解
Jul 01 Python
python动态进度条的实现代码
Jul 03 Python
对Tensorflow中Device实例的生成和管理详解
Feb 04 Python
python批量提取图片信息并保存的实现
Feb 05 Python
Python趣味挑战之实现简易版音乐播放器
May 28 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
双料怀旧--SHARP GF515的维护、修理和简单调试
2021/03/02 无线电
备份mysql数据库的php代码(一个表一个文件)
2010/05/28 PHP
一个PHP验证码类代码分享(已封装成类)
2011/07/17 PHP
phpExcel导出大量数据出现内存溢出错误的解决方法
2013/02/28 PHP
PHP在线生成二维码代码(google api)
2013/06/03 PHP
php实现不通过扩展名准确判断文件类型的方法【finfo_file方法与二进制流】
2017/04/18 PHP
php中用unset销毁变量并释放内存
2020/05/10 PHP
JQUERY 对象与DOM对象之两者相互间的转换
2009/04/27 Javascript
计算世界完全对称日的js代码,粗糙版
2011/11/04 Javascript
JavaScript自定义事件介绍
2013/08/29 Javascript
轻松创建nodejs服务器(10):处理上传图片
2014/12/18 NodeJs
轻松理解JavaScript闭包
2017/03/14 Javascript
Angular.JS中的指令引用template与指令当做属性详解
2017/03/30 Javascript
利用node.js本地搭建HTTP服务器
2017/04/19 Javascript
ES6 javascript中class类的get与set用法实例分析
2017/10/30 Javascript
Vue-Router模式和钩子的用法
2018/02/28 Javascript
记录一篇关于redux-saga的基本使用过程
2018/08/18 Javascript
微信小程序tab切换可滑动切换导航栏跟随滚动实现代码
2019/09/04 Javascript
jQuery 判断元素是否存在然后按需加载内容的实现代码
2020/01/16 jQuery
js正则表达式简单校验方法
2021/01/03 Javascript
python添加模块搜索路径和包的导入方法
2019/01/19 Python
python 实现敏感词过滤的方法
2019/01/21 Python
python接口自动化(十六)--参数关联接口后传(详解)
2019/04/16 Python
python requests库爬取豆瓣电视剧数据并保存到本地详解
2019/08/10 Python
Python实现朴素贝叶斯的学习与分类过程解析
2019/08/24 Python
django 模版关闭转义方式
2020/05/14 Python
基于django micro搭建网站实现加水印功能
2020/05/22 Python
Python使用matplotlib绘制圆形代码实例
2020/05/27 Python
pycharm sciview的图片另存为操作
2020/06/01 Python
Python读取pdf表格写入excel的方法
2021/01/22 Python
CSS3实现同时执行倾斜和旋转的动画效果
2016/10/27 HTML / CSS
当当网官方旗舰店:中国图书销售夺金品牌
2018/04/02 全球购物
集团公司总经理岗位职责
2013/12/20 职场文书
党的群众路线教育实践活动总结
2014/10/30 职场文书
敲诈同学钱财检讨书范文
2014/11/18 职场文书
MySQL 8.0 驱动与阿里druid版本兼容问题解决
2021/07/01 MySQL