python多线程threading.Lock锁用法实例


Posted in Python onNovember 01, 2014

本文实例讲述了python多线程threading.Lock锁的用法实例,分享给大家供大家参考。具体分析如下:

python的锁可以独立提取出来

mutex = threading.Lock()

#锁的使用

#创建锁

mutex = threading.Lock()

#锁定

mutex.acquire([timeout])

#释放

mutex.release()

锁定方法acquire可以有一个超时时间的可选参数timeout。如果设定了timeout,则在超时后通过返回值可以判断是否得到了锁,从而可以进行一些其他的处理。
#!/usr/bin/env python

#coding=utf-8

import threading

import time

 

class MyThread(threading.Thread):

    def run(self):

        global num 

        time.sleep(1)

 

        if mutex.acquire(1):  

            num = num+1

            msg = self.name+' set num to '+str(num)

            print msg

            mutex.release()

num = 0

mutex = threading.Lock()

def test():

    for i in range(5):

        t = MyThread()

        t.start()

if __name__ == '__main__':

    test()

Thread-1 set num to 1

Thread-3 set num to 2

Thread-4 set num to 3

Thread-5 set num to 4

Thread-2 set num to 5

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
使用IPython下的Net-SNMP来管理类UNIX系统的教程
Apr 15 Python
Python中的map()函数和reduce()函数的用法
Apr 27 Python
Python捕捉和模拟鼠标事件的方法
Jun 03 Python
python和bash统计CPU利用率的方法
Jul 10 Python
利用Python如何生成随机密码
Apr 20 Python
Python xlwt设置excel单元格字体及格式
Apr 18 Python
python爬虫爬取某站上海租房图片
Feb 04 Python
python之cv2与图像的载入、显示和保存实例
Dec 05 Python
Python面向对象总结及类与正则表达式详解
Apr 18 Python
python 控制Asterisk AMI接口外呼电话的例子
Aug 08 Python
详解python with 上下文管理器
Sep 02 Python
简述python四种分词工具,盘点哪个更好用?
Apr 13 Python
python分割文件的常用方法
Nov 01 #Python
跟老齐学Python之通过Python连接数据库
Oct 28 #Python
Python对象体系深入分析
Oct 28 #Python
Python中类的继承代码实例
Oct 28 #Python
Python列表list数组array用法实例解析
Oct 28 #Python
python实现无证书加密解密实例
Oct 27 #Python
深入理解Python 代码优化详解
Oct 27 #Python
You might like
php递归实现无限分类生成下拉列表的函数
2010/08/08 PHP
PHP模板引擎smarty详细介绍
2015/05/26 PHP
Laravel与CI框架中截取字符串函数
2016/05/08 PHP
在Mac OS下搭建LNMP开发环境的步骤详解
2017/03/10 PHP
微信接口生成带参数的二维码
2017/07/31 PHP
Aster vs Newbee BO5 第一场2.19
2021/03/10 DOTA
jQuery创建DOM元素实例解析
2015/01/19 Javascript
简单介绍jsonp 使用小结
2016/01/27 Javascript
vue-cli项目如何使用vue-resource获取本地的json数据(模拟服务端返回数据)
2017/08/04 Javascript
打字效果动画的4种实现方法(超简单)
2017/10/18 Javascript
微信实现自动跳转到用其他浏览器打开指定APP下载
2019/02/15 Javascript
Vue中多元素过渡特效的解决方案
2020/02/05 Javascript
解决vue下载后台传过来的乱码流的问题
2020/12/05 Vue.js
[46:27]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#2LGD VS MVP.Phx第一局
2016/03/02 DOTA
Python中每次处理一个字符的5种方法
2015/05/21 Python
通过mod_python配置运行在Apache上的Django框架
2015/07/22 Python
浅谈Python 中整型对象的存储问题
2016/05/16 Python
python实现dijkstra最短路由算法
2019/01/17 Python
对python numpy.array插入一行或一列的方法详解
2019/01/29 Python
Python 类,property属性(简化属性的操作),@property,property()用法示例
2019/10/12 Python
Python+OpenCV实现旋转文本校正方式
2020/01/09 Python
PyQt5中QTableWidget如何弹出菜单的示例代码
2020/02/23 Python
在python3中实现查找数组中最接近与某值的元素操作
2020/02/29 Python
pandas数据拼接的实现示例
2020/04/16 Python
纯CSS3实现表单验证效果(非常不错)
2017/01/18 HTML / CSS
中国跨境海淘网站:考拉海购
2016/08/01 全球购物
德国BA保镖药房韩文网:kr.ba.de
2017/09/04 全球购物
如果NULL定义成#define NULL((char *)0)难道不就可以向函数传入不加转换的NULL了吗
2012/02/15 面试题
医学专业自荐信
2014/06/14 职场文书
经济国贸专业求职信
2014/06/18 职场文书
学生党员批评与自我批评
2014/10/15 职场文书
2014年护理工作总结范文
2014/11/14 职场文书
任命书格式范文
2015/09/22 职场文书
人生一定要学会的三样东西:放下、忘记、珍惜
2019/08/21 职场文书
Python装饰器详细介绍
2022/03/25 Python
【海涛解说】史上最给力比赛,挑战DOTA极限
2022/04/01 DOTA