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 相关文章推荐
Python 的描述符 descriptor详解
Feb 27 Python
Python字符串切片操作知识详解
Mar 28 Python
Python利用Beautiful Soup模块创建对象详解
Mar 27 Python
Python下实现的RSA加密/解密及签名/验证功能示例
Jul 17 Python
python3.x 将byte转成字符串的方法
Jul 17 Python
Python/ArcPy遍历指定目录中的MDB文件方法
Oct 27 Python
python里 super类的工作原理详解
Jun 19 Python
如何通过50行Python代码获取公众号全部文章
Jul 12 Python
python使用SQLAlchemy操作MySQL
Jan 02 Python
利用OpenCV中对图像数据进行64F和8U转换的方式
Jun 03 Python
Python学习笔记之装饰器
Aug 06 Python
Pyqt助手安装PyQt5帮助文档过程图解
Nov 20 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框架 深入了解MVC运行流程
2016/09/19 PHP
PHP生成腾讯云COS接口需要的请求签名
2018/05/20 PHP
PHP实现函数内修改外部变量值的方法示例
2018/12/28 PHP
laravel框架创建授权策略实例分析
2019/11/22 PHP
使用git迁移Laravel项目至新开发环境的步骤详解
2020/04/06 PHP
JAVASCRIPT对象及属性
2007/02/13 Javascript
JQuery toggle使用分析
2009/11/16 Javascript
JavaScript 拾碎[三] 使用className属性
2010/10/16 Javascript
javascript实现客户端兼容各浏览器创建csv并下载的方法
2015/03/23 Javascript
javascript实现的简单计时器
2015/07/19 Javascript
Javascript复制实例详解
2016/01/28 Javascript
ros::spin() 和 ros::spinOnce()函数的区别及详解
2016/10/01 Javascript
微信小程序 Storage API实例详解
2016/10/02 Javascript
ie下js不执行的几种可能
2017/02/28 Javascript
ReactJs设置css样式的方法
2017/06/08 Javascript
Node.js 使用递归实现遍历文件夹中所有文件
2017/09/18 Javascript
JavaScript函数式编程(Functional Programming)高阶函数(Higher order functions)用法分析
2019/05/22 Javascript
使用Vue CLI创建typescript项目的方法
2019/08/09 Javascript
Vue中qs插件的使用详解
2020/02/07 Javascript
Python 自动补全(vim)
2014/11/30 Python
pycham查看程序执行的时间方法
2018/11/29 Python
详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决
2019/04/17 Python
python实现植物大战僵尸游戏实例代码
2019/06/10 Python
python2.7的flask框架之引用js&css等静态文件的实现方法
2019/08/22 Python
python selenium实现发送带附件的邮件代码实例
2019/12/10 Python
关于python 的legend图例,参数使用说明
2020/04/17 Python
Python爬虫入门有哪些基础知识点
2020/06/02 Python
万代美国官网:PREMIUM BANDAI USA
2020/09/11 全球购物
美国电子产品购物网站:BuyDig.com
2020/06/17 全球购物
Nobody Denim官网:购买高级女士牛仔裤
2021/03/15 全球购物
工程项目经理岗位职责
2013/12/15 职场文书
个人求职简历中英文自我评价
2013/12/16 职场文书
部队学习十八大感言
2014/01/11 职场文书
商场消防演习方案
2014/02/12 职场文书
如何使用PyCharm及常用配置详解
2021/06/03 Python
Java 超详细讲解十大排序算法面试无忧
2022/04/08 Java/Android