python中threading中的lock类
虽然线程可以在程序的执行过程中提高程序的运行效率,但是其带来的影响却难以忽略。
Lock类是threading中用于锁定当前线程的锁定类。顾名思义,其作用是对当前运行中的线程进行锁定,只有当前线程被释放后,后续线程才可以继续操作。
具体代码如下:
import threading,time,randomcount = 0 class MyThread_lock(threading.Thread):def __init__(self,lock,threadName):super(MyThread_lock,self).__init__(name=threadName)self.lock = lockdef run(self):global countself.lock.acquire() #acquire()方法提供了确定对象被锁定的标志for i in range(5):count +=1time.sleep(0.3)print(self.getName(),count)self.lock.release() #release()在对象被当前线程使用完毕后将当前对象释放 lock = threading.Lock() for i in range(2):MyThread_lock(lock,"MyThreadName:"+str(i)).start()
Lock被传递给MyThread_lock,并在run方法中人为锁定当前线程,必须等线程执行完毕后,后续的线程才可以继续执行。程序执行结果如下:
转载于:https://www.cnblogs.com/gary-li/p/10878829.html
python中threading中的lock类相关推荐
- python主线程和子线程_python 在threading中如何处理主进程和子线程的关系
之前用python的多线程,总是处理不好进程和线程之间的关系.后来发现了join和setDaemon函数,才终于弄明白.下面总结一下. 1.使用join函数后,主进程会在调用join的地方等待子线程结 ...
- python中threading模块中的Join类
join类是threading中用于堵塞当前主线程的类,其作用是阻止全部的线程继续运行,直到被调用的线程执行完毕或者超时.具体代码如下: import threading,timedef doWait ...
- python中的threading_python中threading超线程用法实例分析
本文实例讲述了python中threading超线程用法.分享给大家供大家参考.具体分析如下: threading基于Java的线程模型设计.锁(Lock)和条件变量(Condition)在Java中 ...
- python中threading模块详解及常用方法_Python常用模块功能简介(二)threading
threading模块基本用法 threading.Thread.join函数解释 threading.Thread.join(timeout=None)调用该函数的线程会阻塞调用该线程的主线程和其它 ...
- python的threading是什么意思_Python中的threading模块是什么
threading提供了一个比thread模块更高层的API来提供线程的并发性.这些线程并发运行并共享内存. 下面来看threading模块的具体用法: 一.Thread的使用,目标函数可以实例化一个 ...
- python中的threading_Python中Threading用法详解
Python的threading模块松散地基于Java的threading模块.但现在线程没有优先级,没有线程组,不能被销毁.停止.暂停.开始和打断. Java Thread类的静态方法,被移植成了模 ...
- Python中如何使用构造方法定义类
每个类都有一个默认的__init__()方法,如果在定义类时显式地定义了__init__()方法,则创建对象时Python解释器会调用显式定义的__init__()方法;如果定义类时没有显式定义__i ...
- python threading join_Python中threading模块join函数用法实例分析
本文实例讲述了Python中threading模块join函数用法.分享给大家供大家参考.具体分析如下: join的作用是众所周知的,阻塞进程直到线程执行完毕.通用的做法是我们启动一批线程,最后joi ...
- Python中threading的join和setDaemon的区别及用法 例子
Python中threading的join和setDaemon的区别及用法 Python多线程编程时,经常会用到join()和setDaemon()方法,今天特地研究了一下两者的区别. 1.join ...
- python语言学习:python语言学习中的定义类、定义函数、封装api等详细攻略
python语言学习:python语言学习中的定义类.定义函数.封装api等详细攻略 目录 python语言学习中的定义类 python语言学习中的定义函数 python语言学习中封装api pyth ...
最新文章
- java数组缓冲,java – 字节数组缓冲图像转换速度慢
- JavaScript学习 九、事件
- dp主机_MODBUS 和 PROFIBUS-DP 协议有什么区别
- 转子碰磨 matlab,航空科普:什么是航空发动机转子碰磨?
- html5图片长按保存,一文彻底解决HTML5页面中长按保存图片功能
- 转行程序员?你可能忽略了一件事。
- Apache httpd 配置HTTPS SSL访问 443
- Cocos2d-x学习之创建Android工程和编译
- jpeg 转bmp代码_代码写得很牛逼但UI界面却搞得很丑?来,杨工带你!
- 15投影矩阵与Moore-Penrose逆(1)
- 大数据职业理解_大数据职业规划总结
- 金融反欺诈的底层逻辑
- 如何评价杭州阿里、海康、网易等组成 HR 联盟?
- requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
- quickBI数据脱敏
- 如何旋转树莓派的显示屏幕
- Castor xsd生成java_利用Castor自动生成java文件
- TextView添加下划线
- UDT 最新源码分析(三) -- UDT Socket 相关函数
- erp企业管理系统价值