RLOCK递归锁是同步锁的升级版本。根据同步锁,可以反复反复反复访问()。保持在递归锁内。当计数器不是0时,不能通过I/O操作和时间查询机制切换。
递归锁相关的方法如下:
threading.rlock()返回递归锁定对象螺纹。rlock()。获取(blocking = true,timeout = 1)锁定,当锁定代码块执行线程时,将不允许切换到其他线程,默认故障时间为1秒hende.rlock()。Release()已解锁。当无锁定代码块执行线程时,系统将允许系统切换到螺纹。rlock()。locked()确定锁定对象是否处于锁定状态,并在下面返回布尔值是递归锁的情况。
结果:
可以看到。导致同步锁中死锁的代码可以正常在递归锁下执行。
像同步锁一样,threading.rlock()对象也实现了*enter*()和exit **()方法,因此我们还可以使用withte语句执行上下文管理锁的递归锁,例如同步锁,例如同步锁。
示例如下:
结果: