У меня одновременно запущено несколько потоков, которые работают в «фоновом режиме», но затем программа достигает точки, где для продолжения всех потоков требуется ввод данных пользователем. Ниже написано то, что я написал, и оно работает, но оно кажется неэффективным, и я не уверен, как еще это сделать, поскольку это мой первый опыт работы с многопоточностью.
global userPromptFlag = 1
# first thread to reach this condition prompts the user for info
if (userPromptFlag == 1):
userPromptFlag = 0
self.userPrompts()
else:
# other threads wait until user finishes entering prompts
while promptsFinished == 'n':
pass
Не знаю как тот факт, что существует небольшая вероятность того, что два потока могут достичь состояния одновременно, хотя это не происходило еще во многих моих тестах. Я также не фанат других тем, которые сидят в этом, пока l oop ждет, пока пользователь введет требуемую информацию, но нам пока не нужно беспокоиться об этом (если только вы не захотите обратиться к ней в качестве бонуса). вопрос: D)