# with——自动打开自动关闭
import threading
import timeclass Test:rlock=threading.RLock()def __init__(self):self.number=0def execute(self,n):with Test.rlock:self.number+=ndef add(self):with Test.rlock:self.execute(1)def down(self):with Test.rlock:self.execute(-1)def add(test):for i in range(1000000):test.add()
def down(test):for i in range(1000000):test.down()if __name__ == '__main__':t=Test()# args为参数,传给target所指的函数t1=threading.Thread(target=add,args=(t,))t2=threading.Thread(target=down,args=(t,))t1.start()t2.start()t1.join()t2.join()print(t.number)

Python多线程——递归锁RLOCK相关推荐

  1. python 线程安全的数据类型_详解python多线程、锁、event事件机制的简单使用

    详解python多线程.锁.event事件机制的简单使用 发布时间:2020-09-25 02:04:12 来源:脚本之家 阅读:117 作者:君惜 线程和进程 1.线程共享创建它的进程的地址空间,进 ...

  2. python 多线程同步锁之实现停车场业务(2)

    这边文章是实现同时有车辆出去,又有车辆进来的业务逻辑,和现实的差不多 真正要和现实中的一样,只需要更改休眠时间就可,通过调节修改时间,动态实现 之前的代码 python 多线程同步锁之实现停车场业务( ...

  3. python之递归锁【Rlock】

    # 递归锁:就是一把锁中还有一把小锁,比如学校的大门口有一个大锁,学校里的 #每个教室也有一把小锁,以后所有的锁都用rlock就可以了,不要用lock,尤其是多层锁的时候,必须要用递归锁 import ...

  4. python多线程,线程锁

    python使用多线程, 不一定运行速度快,这里引入GIL(global interpreter lock) python解释器中任意时刻都只有一个线程在执行; GIL执行过程: 1). 设置一个GI ...

  5. Python多线程——LOCK锁

    ''' import threading number=0 def addNumber():global numberfor i in range(1000000):number+=1# 运行时分为计 ...

  6. Python多线程--互斥锁、死锁

    1.互斥锁 为解决资源抢夺问题,使用mutex = Threading.Lock()创建锁,使用mutex.acquire()锁定,使用mutex.release()释放锁. 代码一: import ...

  7. python中gil锁和线程锁_Python线程——GIL锁、线程锁(互斥锁)、递归锁(RLock)...

    GIL锁 ​ 计算机有4核,代表着同一时间,可以干4个任务.如果单核cpu的话,我启动10个线程,我看上去也是并发的,因为是执行了上下文的切换,让看上去是并发的.但是单核永远肯定时串行的,它肯定是串行 ...

  8. Python 多线程总结(2)— 线程锁、线程池、线程数量、互斥锁、死锁、线程同步

    主要介绍使用 threading 模块创建线程的 3 种方式,分别为: 创建 Thread 实例函数 创建 Thread 实例可调用的类对象 使用 Thread 派生子类的方式 多线程是提高效率的一种 ...

  9. python lock_python多线程Lock和RLock的区别

    python多线程Lock和RLock的区别 1. 两种锁的不同 1.1 定义 为了确保对共享资源的访问,python提供了两种锁,一个是上一篇提到的Lock,还有一个就是RLock,他们的区别在于: ...

最新文章

  1. JZOJ100047.基因变异 (Standard IO)
  2. 大数据薪资报告出炉:你的工资拖后腿了吗?
  3. nginx一 之负载均衡介绍
  4. 优秀HTML5网站学习范例:从“饥饿游戏浏览器”谈用户体验
  5. 登录网页后要弹出一个新标签_连永久链接都不会,还做什么新媒体?
  6. selenium等待定位标签加载完再执行
  7. YYT 0659 - 2008全自动凝血分析仪
  8. (王道408考研数据结构)第五章树-第三节4:树与二叉树的转换
  9. TX2Ubuntu16.04上安装 kinectV2
  10. Node.js安装和入门 - 2行代码让你能够启动一个Server
  11. 【2022最新】Vscode配置Python环境Leetcode刷题指南
  12. osip和mysql_osip2/eXosip2调试笔记
  13. gstreamer协商negoation
  14. 中e管家如何投资理财收益最大化
  15. 计算机解题的过程实际上是实施某种算法,计算机等级考试二级C考点.doc
  16. 网页设计HTML如何制作选项卡,jQuery制作网页版选项卡
  17. SATA学习笔记 3 --- SATA简介
  18. 港科夜闻丨香港科大获越秀集团捐赠港币一亿元支持大学发展
  19. 树的Breadth-First-Search和Depth-First-Search的java实现
  20. 操作系统课程设计----读者-写者 问题(c语言)

热门文章

  1. Python自定义:粒子群优化算法
  2. 5.2 TensorFlow:模型的加载,存储,实例
  3. 解决element-ui中el-menu组件作为vue-router模式在刷新页面后default-active属性与当前路由页面不一致问题的方法...
  4. Qtcreator 之中文目录
  5. 解题代码 用jquery控制一个按钮当一次点击完之后5 秒后才能继续点击 验证码的制作...
  6. 设计模式之职责链模式永不罢休(二十一)
  7. js创建对象的高级模式
  8. JavaScript倒计时
  9. 统一的定义导航栏的背景颜色(NavigationController)
  10. jquery操作iframe