Задать вопрос
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 в другом потоке переменная не изменилась?
  • Вопрос задан
  • 2420 просмотров
Подписаться 3 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Skillbox
    Профессия Python-разработчик + ИИ
    10 месяцев
    Далее
Решения вопроса 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()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Краснодар
от 220 000 до 300 000 ₽
ITK academy Краснодар
от 75 000 ₽
DimaTech Ltd Краснодар
от 140 000 до 140 000 ₽