Лучший способ запустить процесс непрерывно вместе с другим процессом, который собирается обновить первый - PullRequest
0 голосов
/ 19 апреля 2020

Мне интересно, как лучше всего играть постоянный ритм с заданным ударов в минуту, когда удары в минуту будут обновляться другой функцией, которая считывает данные из пользовательского ввода.

    def gatherAndProcessData():
      return newBPM

    def playBeat(newBPM):
      subprocess.call(["python.exe", "playBeat.py"])  # Calling the Beat

    def main():
       while True:
            with concurrent.futures.ThreadPoolExecutor() as executor:
                 executor.submit(gatherData, (event_time,))
                 executor.submit(playBeat, (oscillator_machine.freq,))

Это более Базовая c версия кода, работающего в данный момент, что, я думаю, будет достаточно, но если вам помогут более подробные сведения, просто дайте мне знать, и я добавлю больше.

В настоящее время я пытаюсь использовать пулы потоков, но не знаю, как они работают. Приведенный выше код, я думаю, может быть близок к решению, но в данный момент не работает. Я ожидаю возвращаемое значение bpm от gatherData, которое также печатается в конце этой функции, однако операторы print не печатаются, а executor.submit возвращает будущий набор, поэтому я не уверен, как получить доступ к возвращенному значению из функция в этом наборе.

...