RLock 可重入锁

44.6 RLock 可重入锁

Lock 同一线程不能重复 acquire;RLock 可以,适合递归或嵌套调用。

RLock 嵌套

# ========================================
# 示例:RLock 可重入
# 说明:同一线程可多次 acquire
# ========================================
import threading

rlock = threading.RLock()

def outer():
    with rlock:
        print('outer 获得锁')
        inner()

def inner():
    with rlock:
        print('inner 再次获得锁(同一线程)')

outer()