2012-07-04 2 views
1

Есть ли способ использовать синхронизацию потоков монитора, например, синхронизацию java-методов, в классе python для обеспечения безопасности потоков и предотвращения состояния гонки?Мониторинг синхронизации потоков в python

Я хочу монитор как механизм синхронизации, который позволяет только один вызов метода в моем классе или объект

ответ

5

Вы можете посмотреть на python threading interface. Для простой функции взаимного исключения вы можете использовать объект Lock. Вы можете легко сделать это с помощью with заявления как:

... 
lock = Lock() 
... 
with (lock): 
    # This code will only be executed by one single thread at a time 
    # the lock is released when the thread exits the 'with' block 
    ... 

Смотрите также here для обзора различных механизмов синхронизации потоков в питоне.

Там нет языка Python конструкта для Java-х synchronized (но я предполагаю, что это может быть построено с использованием декораторов)

+1

Спасибо за ваш ответ – Pooya

Смежные вопросы