Могу ли я получить блокировку многопроцессорности в инструкции a?

Ужасные вещи могут произойти, если процесс не может разблокировать блокировку multiprocessing . Чтобы свести к минимуму вероятность этого, я хочу получить блокировку в блоке. Есть ли какой-либо встроенный способ, которым я могу это сделать, или мне нужно сворачивать самостоятельно?

2 Solutions collect form web for “Могу ли я получить блокировку многопроцессорности в инструкции a?”

Да, вы можете просто сделать:

 with multiprocessing.Lock(): ... 

поскольку Lock является менеджером контекста. Так что RLock, Lock и RLock – от потоковой передачи.

В документации указано, что это «клон threading.Lock», поэтому вы можете ссылаться на «Использование блокировок, условий и семафоров в инструкции с»,

Да, ты можешь.

Документация для состояний Lock :

class multiprocessing.Lock

 A non-recursive lock object: a clone of `threading.Lock`. 

Чтение документации на threading :

Все объекты, предоставленные этим модулем, которые имеют методы acquire() и release() могут использоваться в качестве контекстных менеджеров для оператора with .

  • передать аргумент __enter__
  • StringIO и совместимость с оператором 'with' (менеджер контекста)
  • с оператором - backport для Python 2.5
  • Что происходит с исключениями, возникающими в выражении с выражением оператора?
  • Смущенный о правильном порядке попытки и с помощью Python
  • AttributeError: __ exit__ на python 3.4
  • Использование инструкции python с инструкцией с блоком try-except
  • Python Mock - Издевается несколько открытых
  • Python - лучший язык программирования в мире.