如果进程无法解锁multiprocessing
锁,就会发生可怕的事情。为了尽量减少发生这种情况的可能性,我想获取 with
block 中的锁。有什么内置方法可以做到这一点,还是我需要自己动手?
最佳答案
是的,你可以这样做:
mylock = multiprocessing.Lock()
with mylock:
...
因为 Lock 是一个上下文管理器。 RLock 也是如此,线程中的 Lock 和 RLock 也是如此。
documentation确实声明它是“threading.Lock 的克隆”,因此您可以引用 "Using locks, conditions, and semaphores in the with statement"
[编辑 2020:documentation now mentions this explicitly ]
关于python - 我可以在 with 语句中获取 multiprocessing 的 Lock 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18386616/