пользователи подсказывают с многопоточностью - PullRequest
0 голосов
/ 10 февраля 2020

У меня есть несколько потоков, которые работают в фоновом режиме. В какой-то момент в программе пользовательский ввод (посредством набора приглашений) необходим для сбора информации, чтобы программа продолжала делать свое дело. Это будет происходить несколько раз по всей программе. То, как я сейчас это делаю, работает, но подвержено проблемам. Как «назначить» только один / первый поток для обработки пользовательских запросов без шансов того, что другие потоки рассылают пользователю такие же приглашения?

В настоящее время у меня есть следующее: (примечание: firstThread является глобальным )

    prbsMutex.acquire()
    if (firstThread == True):
        self.userPrompt()
        # set to false so other threads don't reprompt the user after lock is released
        firstThread = False
    prbsMutex.release()

    # ....code to do things with user input...

    #shortly after I reset the flag for when it loops back again
    firstThread = False

Мне нужен способ сказать: «Поток 1 - это единственный поток, который должен запрашивать пользователя, в то время как другие потоки ждут его, пока FINI SH», но я не уверен как.

...