Я знаю только основные концепции многопоточности, и в настоящее время я сталкиваюсь с ситуацией, которая требует некоторой помощи.
У меня есть две задачи, которые нужно выполнить, и обе должны выполняться непрерывно.Дело в том, что вторая задача должна запускаться только после того, как первый поток сначала выполнил несколько заданий.Прямо сейчас два класса потока выглядят примерно так:
finished = False # shared flag
class first(threading.Thread):
def __init__(self, cond, finished):
threading.Thread.__init__(self)
self.cond = cond
self.finished = finished
def run(self):
self.cond.aquire()
do_something()
self.finished = True #change the flag
self.cond.notify()
self.cond.release()
do_something_else()
class second(threading.Thread):
def __init__(self, cond, finished):
threading.Thread.__init__(self)
self.cond = cond
self.finished = finished
def run(self):
self.cond.aquire()
while self.finished == False:
self.cond.wait()
self.cond.release()
do_something()
Однако факт заключается в том, что программа по-прежнему выполняется случайным образом независимо от wait () и notify ().Кто-нибудь может мне помочь с этим вопросом?Спасибо.