zoukankan      html  css  js  c++  java
  • 递归锁

    Python 递归锁

     
    • 递归锁:
      互斥锁如果嵌套了多个锁之后,会将自己锁死永远都出不来了。
      这个时候可以使用递归锁,它相当于一个字典,记录了锁的门与锁的对应值,当开门的时候会根据对应来开锁。
     
    复制代码
    import threading
    # run1第二道锁 def run1(): print("grab the first part data") lock.acquire() global num num +=1 lock.release() return num # run2第三道锁 def run2(): print("grab the second part data") lock.acquire() global num2 num2+=1 lock.release() return num2 # run3相当于第一道锁 def run3(): # 获取一把锁 lock.acquire() res = run1() print('--------between run1 and run2-----') res2 = run2() # 释放一把锁 lock.release() print(res,res2) # 生成两个变量 num,num2 = 0,0 # 生成递归锁实例 lock = threading.RLock() # 循环开启10个线程 for i in range(10): t = threading.Thread(target=run3) t.start() # 如过大于1个线程就成立 while threading.active_count() != 1: # 打印当前还有多少个线程 print(threading.active_count()) else: print('----all threads done---') print(num,num2)
  • 相关阅读:
    第一个SpringBoot
    windows 安装 mysql 及部分命令
    别让猴子跳回背上
    windows环境下基于Anaconda安装Tensorflow
    spark
    ubuntu环境下安装chrome
    前言
    模型压缩(4)
    模型压缩(3)
    模型压缩(2)
  • 原文地址:https://www.cnblogs.com/pyxuexi/p/13942552.html
Copyright © 2011-2022 走看看