我有一个主线程,它始终需要可用于读取键盘按键输入。
每次按键时,我必须运行 4 个功能,例如显示、保存到文件以及发出 HTTP 请求等。
按键的速度比执行 4 个功能的速度更快。
我的逻辑如下,但无法看到如何保持 key_press() 始终运行,因为我必须等待函数在某个时刻完成。
async def main():
async with aiohttp.ClientSession() as client:
while True:
pressed_key = key_press()
if pressed_key != "":
f1 = asyncio.create_task(do_something1())
f2 = asyncio.create_task(do_something2())
f3 = asyncio.create_task(do_something3())
f4 = asyncio.create_task(send_to_API())
await f1,f2,f3,send_to_API
asyncio.run(main())
我是否应该尝试一些额外的逻辑,在递归调用 asyncio.tasks 后进行更多循环?或者我应该考虑多线程,让一个线程活动运行 key_press() 并在其他地方进行异步调用?有什么想法或暗示朝着好的方向发展吗?
哆啦的时光机
相关分类