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实现的石头剪子布代码分享
Aug 22 Python
Python实现在Linux系统下更改当前进程运行用户
Feb 04 Python
编写Python脚本来实现最简单的FTP下载的教程
May 04 Python
python爬虫入门教程--利用requests构建知乎API(三)
May 25 Python
Python Pexpect库的简单使用方法
Jan 29 Python
对pandas处理json数据的方法详解
Feb 08 Python
详解Python装饰器
Mar 25 Python
使用Python创建简单的HTTP服务器的方法步骤
Apr 26 Python
Django admin model 汉化显示文字的实现方法
Aug 12 Python
Pycharm中切换pytorch的环境和配置的教程详解
Mar 13 Python
5行Python代码实现图像分割的步骤详解
May 25 Python
Django Session和Cookie分别实现记住用户登录状态操作
Jul 02 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分页类
2017/07/06 PHP
最简单的jQuery程序 入门者学习
2009/07/09 Javascript
jquery判断字符输入个数(数字英文长度记为1,中文记为2,超过长度自动截取)
2010/10/15 Javascript
用JQuery实现全选与取消的两种简单方法
2014/02/22 Javascript
jQuery操作JSON的CRUD用法实例
2015/02/25 Javascript
详解JavaScript中的every()方法
2015/06/08 Javascript
js实现的鼠标滚轮滚动切换页面效果(类似360默认页面滚动切换效果)
2016/01/27 Javascript
详解JavaScript中数组和字符串的lastIndexOf()方法使用
2016/03/13 Javascript
vue.js+Echarts开发图表放大缩小功能实例
2017/06/09 Javascript
Django+Vue.js搭建前后端分离项目的示例
2017/08/07 Javascript
详解关于react-redux中的connect用法介绍及原理解析
2017/09/11 Javascript
js判断数组是否包含某个字符串变量的实例
2017/11/24 Javascript
Vue+element-ui 实现表格的分页功能示例
2018/08/18 Javascript
JQuery中queue方法用法示例
2019/01/31 jQuery
详解express使用vue-router的history踩坑
2019/06/05 Javascript
vue项目在webpack2实现移动端字体自适配功能
2020/06/02 Javascript
如何通过JS实现日历简单算法
2020/10/14 Javascript
读取本地json文件,解析json(实例讲解)
2017/12/06 Python
python 实现登录网页的操作方法
2018/05/11 Python
Python进阶之全面解读高级特性之切片
2019/02/19 Python
python利用多种方式来统计词频(单词个数)
2019/05/27 Python
Python中遍历列表的方法总结
2019/06/27 Python
python GUI图形化编程wxpython的使用
2019/07/19 Python
python实现小世界网络生成
2019/11/21 Python
HTML5的结构和语义(5):交互
2008/10/17 HTML / CSS
详解H5 活动页之移动端 REM 布局适配方法
2017/12/07 HTML / CSS
纽约现代艺术博物馆商店:MoMA STORE(室内家具和杂货商品)
2016/08/02 全球购物
One.com挪威:北欧成长最快的网络托管公司
2016/11/19 全球购物
iHerb台湾:维生素、保健品和健康产品
2018/01/31 全球购物
获取邓白氏信用报告:Dun & Bradstreet
2019/01/22 全球购物
衰败城市英国官网:Urban Decay英国
2020/04/29 全球购物
军校本科大学生自我评价
2014/01/14 职场文书
跟单业务员岗位职责
2014/03/08 职场文书
小学家长评语大全
2014/04/16 职场文书
运动会宣传稿100字
2015/07/23 职场文书
CSS 使用 resize 实现图片拖拽切换预览功能(强大功能)
2021/08/23 HTML / CSS