python之递归锁【Rlock】
生活随笔
收集整理的這篇文章主要介紹了
python之递归锁【Rlock】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
# 遞歸鎖:就是一把鎖中還有一把小鎖,比如學校的大門口有一個大鎖,學校里的
#每個教室也有一把小鎖,以后所有的鎖都用rlock就可以了,不要用lock,尤其是多層鎖的時候,必須要用遞歸鎖
import threading
import timedef run1():print("grab the first part data")lock.acquire()global num1num1 += 1lock.release()return num1def run2():print("grab the second part data")lock.acquire()global num2num2 += 1lock.release()return num2def run3():lock.acquire()res1 = run1()print("--------between run1 and run2-------")res2 = run2()lock.release()print("函數run1--->",res1,"函數run2--->",res2)if __name__ == '__main__':num1 = 0num2 = 0lock = threading.RLock()for i in range(5):t = threading.Thread(target=run3)t.start()while threading.active_count() != 1:print("剩余的線程數;[%s]" %threading.active_count())
else:print("all thread is down")print(num1,num2)
轉載于:https://www.cnblogs.com/bainianminguo/p/7253925.html
總結
以上是生活随笔為你收集整理的python之递归锁【Rlock】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DotNet_Performance_T
- 下一篇: CentOs 7.2下ELK日志分析系统