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)
  • 相关阅读:
    Python爬虫学习01
    Python学习Day02
    JavaScript学习笔记01
    Python学习Day01
    MarkDown实例代码
    MarkDwon的使用方法
    (转)探究requestDisallowInterceptTouchEvent失效的原因
    JNI字符串转字节数组指针方法
    justfun
    dsad
  • 原文地址:https://www.cnblogs.com/pyxuexi/p/13942552.html
Copyright © 2011-2022 走看看