РЕДАКТИРОВАТЬ: проблема, с которой я столкнулся, не была связана со структурой моей программы.Это была маршрутизация FAPWS3, в которой была выбрана похожая, строго названная функция.
У меня большая программа, распределенная по нескольким файлам.Мне нужно использовать функцию блокировки threading.condition () для этих файлов.Вот пример того, что я пытаюсь сделать.В производственной среде я не получаю никаких ошибок, но состояние блокировки, кажется, не разделяется (я могу получить в одном потоке и получить в другом потоке без освобождения предыдущего).
main.py
import servera, serverb
# some code that deploys server-a and server-b as threads
constants.py
import threading
mylock = threading.Condition()
servera.py
from constants import mylock
Class ServerA():
def doSomething():
mylock.acquire()
# do something
mylock.release()
serverb.py
from constants import mylock
Class ServerB():
def doSomethingElse():
mylock.acquire()
# do something else
mylock.release()