【发布时间】:2015-07-14 11:46:48
【问题描述】:
我需要实现一个异步计时器来“监视”函数列表的执行,直到计时器到期。但问题是函数执行是一个阻塞调用,在这种情况下,如果函数需要太长时间才能恢复,我该如何跟踪计时器。
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 秒的时间来运行整个列表?
-
计时器持续时间适用于列表中的所有功能。
标签: python python-multiprocessing python-asyncio