Мне нужно реализовать асинхронный таймер, чтобы «наблюдать» за исполнением списка функций до истечения таймера. Но проблема в том, что выполнение функции - это блокирующий вызов, и в этом случае, как я могу отслеживать таймер, если функция занимает слишком много времени, чтобы вернуться.Реализация асинхронного таймера в Python
functions = [func_1, func_2, func_3, func_n]
timer = Timer(30) # timer of 30 sec, just for example.
while timer.expires():
for func in functions:
func() # what if this function runs for a min
Я хотел бы избежать многопоточности и многопроцессорность, насколько это возможно, но если многопроцессорные/потоковое это единственный выход, то просьба представить эти решения также.
Каковы различные способы использования python, в которых может быть достигнуто асинхронное поведение.
Чтобы выяснить, выполняет ли каждая функция полные 30 секунд, или у вас есть 30 секунд, чтобы пройти через весь список? – dano
Продолжительность таймера применяется для всех функций из списка, вместе взятых. –