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+Django在windows下的开发环境配置图解
Nov 11 Python
使用python Django做网页
Nov 04 Python
Python 的 Socket 编程
Mar 24 Python
详解Python中with语句的用法
Apr 15 Python
如何使用python爬取csdn博客访问量
Feb 14 Python
python利用sklearn包编写决策树源代码
Dec 21 Python
Python内置模块ConfigParser实现配置读写功能的方法
Feb 12 Python
python进行两个表格对比的方法
Jun 27 Python
python 实现数字字符串左侧补零的方法
Dec 04 Python
Python Mock模块原理及使用方法详解
Jul 07 Python
使用python-cv2实现视频的分解与合成的示例代码
Oct 26 Python
anaconda安装pytorch1.7.1和torchvision0.8.2的方法(亲测可用)
Feb 01 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
PHP5函数小全(分享)
2013/06/06 PHP
分享一个超好用的php header下载函数
2014/01/31 PHP
php 读取文件夹下所有图片、文件的实例
2018/10/17 PHP
使用 PHP Masked Package 屏蔽敏感数据的实现方法
2019/10/15 PHP
PHP中用Trait封装单例模式的实现
2019/12/18 PHP
php 的多进程操作实践案例分析
2020/02/28 PHP
Jquery 滑入滑出效果实现代码
2010/03/27 Javascript
简洁Ajax函数处理(示例代码)
2013/11/15 Javascript
JavaScript实现标题栏文字轮播效果代码
2015/10/24 Javascript
js html5 css俄罗斯方块游戏再现
2016/10/17 Javascript
bootstrap实现每隔5秒自动轮播效果
2016/12/20 Javascript
详解Angular 4.x 动态创建组件
2017/04/25 Javascript
简单理解Vue中的nextTick方法
2018/01/30 Javascript
基于 D3.js 绘制动态进度条的实例详解
2018/02/26 Javascript
react-native动态切换tab组件的方法
2018/07/07 Javascript
JavaScript实现无限级递归树的示例代码
2019/03/29 Javascript
javascript二维数组和对象的深拷贝与浅拷贝实例分析
2019/10/26 Javascript
jQuery实现的分页插件完整示例
2020/05/26 jQuery
vue操作dom元素的3种方法示例
2020/09/20 Javascript
jQuery实现图片切换效果
2020/10/19 jQuery
node.js 基于 STMP 协议和 EWS 协议发送邮件
2021/02/14 Javascript
[13:25]VP vs VICI (BO3)
2018/06/07 DOTA
Python编程入门的一些基本知识
2015/05/13 Python
Python爬虫通过替换http request header来欺骗浏览器实现登录功能
2018/01/07 Python
python matplotlib.pyplot.plot()参数用法
2020/04/14 Python
Django form表单与请求的生命周期步骤详解
2020/06/07 Python
如何在pycharm中安装第三方包
2020/10/27 Python
python中doctest库实例用法
2020/12/31 Python
幼儿教师个人求职信范文
2013/09/21 职场文书
矫正人员思想汇报
2014/01/08 职场文书
学校消防安全制度
2014/01/30 职场文书
软件售后服务方案
2014/05/29 职场文书
论群众路线学习心得体会
2014/10/31 职场文书
前台接待岗位职责
2015/02/03 职场文书
高三英语教学反思
2016/03/03 职场文书
Python 快速验证代理IP是否有效的方法实现
2021/07/15 Python