В настоящее время я пишу программу, в которой у меня есть цикл True, в котором я хочу вызвать две функции. Перед их вызовом собирается некоторая информация, которая определяет, должны ли они быть вызваны (а я не могу сделать это внутри функций). Для выполнения функций требуется некоторое время, но они не должны прерывать выполнение цикла (они должны выполняться асинхронно). И они также не должны выполняться, когда уже есть экземпляр каждой выполняемой функции. Как я могу это реализовать?
Я уже изучил asyncio, но не мог понять, как применить его к моей проблеме. В следующем примере кода вы можете увидеть, как я представляю, как это работает.
def B_sync_func():
global B
B = True
#do time consuming stuff
B = False
return
def A_async_func():
global A
A = True
#do time consuming stuff
A = False
return
A = False
B = False
while True:
info = data_gathering()
if execute_A(info) and !A:
A_async_func()
if execute_B(info) and !B:
B_async_func()