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生成指定长度的随机数密码
Jan 23 Python
python中合并两个文本文件并按照姓名首字母排序的例子
Apr 25 Python
Python内建数据结构详解
Feb 03 Python
Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法
Apr 23 Python
离线安装Pyecharts的步骤以及依赖包流程
Apr 23 Python
Python3中内置类型bytes和str用法及byte和string之间各种编码转换 问题
Sep 27 Python
pandas DataFrame 警告(SettingWithCopyWarning)的解决
Jul 23 Python
pytorch 共享参数的示例
Aug 17 Python
Python模拟登录之滑块验证码的破解(实例代码)
Nov 18 Python
python序列化与数据持久化实例详解
Dec 20 Python
Django使用Profile扩展User模块方式
May 14 Python
python查询MySQL将数据写入Excel
Oct 29 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基础之运算符的使用方法
2013/04/28 PHP
使用PHP实现下载CSS文件中的图片
2015/12/06 PHP
thinkphp自带验证码全面解析
2016/09/18 PHP
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
Yii2结合Workerman的websocket示例详解
2018/09/10 PHP
推荐dojo学习笔记
2007/03/24 Javascript
jQuery 文本框得失焦点的简单实例
2014/02/19 Javascript
简介AngularJS中使用factory和service的方法
2015/06/17 Javascript
JavaScript使用encodeURI()和decodeURI()获取字符串值的方法
2015/08/04 Javascript
分享使用AngularJS创建应用的5个框架
2015/12/05 Javascript
Jquery和JS获取ul中li标签的实现方法
2016/06/02 Javascript
JS本地刷新返回上一页代码
2016/07/25 Javascript
babel基本使用详解
2017/02/17 Javascript
利用SpringMVC过滤器解决vue跨域请求的问题
2018/02/10 Javascript
web3.js增加eth.getRawTransactionByHash(txhash)方法步骤
2018/03/15 Javascript
Vue 中使用 CSS Modules优雅方法
2018/04/09 Javascript
Nodejs模块的调用操作实例分析
2018/12/25 NodeJs
vue-router两种模式区别及使用注意事项详解
2019/08/01 Javascript
vue视频播放暂停代码
2019/11/08 Javascript
微信小程序实现选项卡滑动切换
2020/10/22 Javascript
python中的内置函数getattr()介绍及示例
2014/07/20 Python
Python 执行字符串表达式函数(eval exec execfile)
2014/08/11 Python
Mac下Supervisor进程监控管理工具的安装与配置
2014/12/16 Python
python中PIL安装简单教程
2016/04/21 Python
使用python爬取B站千万级数据
2018/06/08 Python
python3 pillow模块实现简单验证码
2019/10/31 Python
关于tf.matmul() 和tf.multiply() 的区别说明
2020/06/18 Python
Python pickle模块常用方法代码实例
2020/10/10 Python
CSS实现聊天气泡效果
2020/04/26 HTML / CSS
YSL Beauty加拿大官方商城:圣罗兰美妆加拿大
2017/05/15 全球购物
Lookfantastic意大利官网:英国知名美妆购物网站
2019/05/31 全球购物
2013届毕业生求职信范文
2013/11/20 职场文书
音乐兴趣小组活动总结
2014/07/07 职场文书
2015年汽车销售员工作总结
2015/07/24 职场文书
SSM VUE Axios详解
2021/10/05 Vue.js
解决 redis 无法远程连接
2022/05/15 Redis