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)
  • 相关阅读:
    java开发实战经典
    defer属性---->执行外部脚本
    深入理解JavaScript 模块模式
    JavaScript模块化开发一瞥
    缓存是新的内存
    php站点
    数据库
    .NET中使用Redis
    Scrum中的User Story
    如何编写敏捷开发中的user story
  • 原文地址:https://www.cnblogs.com/pyxuexi/p/13942552.html
Copyright © 2011-2022 走看看