gevent兼容的折返锁?

时间:2017-02-17 14:05:02

标签: python locking gevent

gevent中的RLock等价物是什么?如果没有等价物,如何识别当前的greenlet,以便我可以实现一个?

通过阅读源代码,gevent.lock.BoundedSemaphore(1)相当于一个简单的(非重入)Lock。测试也表明了这一点。

1 个答案:

答案 0 :(得分:1)

gevent.lock模块的实施RLock,使用getcurrent gevent.hub方法来识别当前的greenlet。这是一个简单的例子。

from gevent.lock import RLock

lock = RLock()
with lock:
     print("acquired once")
     with lock:
          print("acquired twice")

虽然我找不到任何文档here,但您始终可以阅读source