虽然线程可以在程序的执行过程中提高程序的运行效率,但是其带来的影响却难以忽略。

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类相关推荐

  1. python主线程和子线程_python 在threading中如何处理主进程和子线程的关系

    之前用python的多线程,总是处理不好进程和线程之间的关系.后来发现了join和setDaemon函数,才终于弄明白.下面总结一下. 1.使用join函数后,主进程会在调用join的地方等待子线程结 ...

  2. python中threading模块中的Join类

    join类是threading中用于堵塞当前主线程的类,其作用是阻止全部的线程继续运行,直到被调用的线程执行完毕或者超时.具体代码如下: import threading,timedef doWait ...

  3. python中的threading_python中threading超线程用法实例分析

    本文实例讲述了python中threading超线程用法.分享给大家供大家参考.具体分析如下: threading基于Java的线程模型设计.锁(Lock)和条件变量(Condition)在Java中 ...

  4. python中threading模块详解及常用方法_Python常用模块功能简介(二)threading

    threading模块基本用法 threading.Thread.join函数解释 threading.Thread.join(timeout=None)调用该函数的线程会阻塞调用该线程的主线程和其它 ...

  5. python的threading是什么意思_Python中的threading模块是什么

    threading提供了一个比thread模块更高层的API来提供线程的并发性.这些线程并发运行并共享内存. 下面来看threading模块的具体用法: 一.Thread的使用,目标函数可以实例化一个 ...

  6. python中的threading_Python中Threading用法详解

    Python的threading模块松散地基于Java的threading模块.但现在线程没有优先级,没有线程组,不能被销毁.停止.暂停.开始和打断. Java Thread类的静态方法,被移植成了模 ...

  7. Python中如何使用构造方法定义类

    每个类都有一个默认的__init__()方法,如果在定义类时显式地定义了__init__()方法,则创建对象时Python解释器会调用显式定义的__init__()方法;如果定义类时没有显式定义__i ...

  8. python threading join_Python中threading模块join函数用法实例分析

    本文实例讲述了Python中threading模块join函数用法.分享给大家供大家参考.具体分析如下: join的作用是众所周知的,阻塞进程直到线程执行完毕.通用的做法是我们启动一批线程,最后joi ...

  9. Python中threading的join和setDaemon的区别及用法 例子

    Python中threading的join和setDaemon的区别及用法 Python多线程编程时,经常会用到join()和setDaemon()方法,今天特地研究了一下两者的区别. 1.join ...

  10. python语言学习:python语言学习中的定义类、定义函数、封装api等详细攻略

    python语言学习:python语言学习中的定义类.定义函数.封装api等详细攻略 目录 python语言学习中的定义类 python语言学习中的定义函数 python语言学习中封装api pyth ...

最新文章

  1. java数组缓冲,java – 字节数组缓冲图像转换速度慢
  2. JavaScript学习 九、事件
  3. dp主机_MODBUS 和 PROFIBUS-DP 协议有什么区别
  4. 转子碰磨 matlab,航空科普:什么是航空发动机转子碰磨?
  5. html5图片长按保存,一文彻底解决HTML5页面中长按保存图片功能
  6. 转行程序员?你可能忽略了一件事。
  7. Apache httpd 配置HTTPS SSL访问 443
  8. Cocos2d-x学习之创建Android工程和编译
  9. jpeg 转bmp代码_代码写得很牛逼但UI界面却搞得很丑?来,杨工带你!
  10. 15投影矩阵与Moore-Penrose逆(1)
  11. 大数据职业理解_大数据职业规划总结
  12. 金融反欺诈的底层逻辑
  13. 如何评价杭州阿里、海康、网易等组成 HR 联盟?
  14. requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
  15. quickBI数据脱敏
  16. 如何旋转树莓派的显示屏幕
  17. Castor xsd生成java_利用Castor自动生成java文件
  18. TextView添加下划线
  19. UDT 最新源码分析(三) -- UDT Socket 相关函数
  20. erp企业管理系统价值

热门文章

  1. Leetcode-105-从前序与中序遍历序列构造二叉树
  2. DSP之通信之MMC控制器
  3. 孙鑫-MFC笔记十--修改应用程序外观
  4. Presto 日期和时间函数
  5. Hive 复杂数据类型之map
  6. Idea2020版本设置编码格式
  7. 初学python-练习_4使用python编写本地登录程序(带注册)
  8. 回头再说-006 时间音乐
  9. httpd2.4.9主配置文件参数详解
  10. 将Long类型的数通过UDP传输