Avillions
@Avillions
PHP Developer at Genesis

Как заблокировать метод в классе который работает в нескольких потоках?

Есть такой код в модуле Foo:
import time
count = 10

def updateCount():
    while 1:
        count += 1
        time.sleep(2)
        print count


И есть файл main.py в котором импортируется модуль Foo и в нескольких потоках запускается функция updateCount.

Как можно синхронизировать эту функцию, что бы пока идет sleep в другом потоке переменная не изменилась?
  • Вопрос задан
  • 2417 просмотров
Решения вопроса 1
mututunus
@mututunus
Backend developer (Python, Golang)
from threading import RLock
lock = RLock()

def updateCount():
    while 1:
        lock.acquire()
        count += 1
        time.sleep(2)
        print count
        lock.release()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы