2024-04-29 03:22:05 发布
网友
我希望能够在不阻塞的情况下获取文件列表,但是我在documentation中没有找到实现这一点的方法。在遗嘱执行人身上这样做是最好的方法吗?在
是的,我认为那是最好的办法。据我所知,没有对列表文件的本机非阻塞调用,因此您别无选择,只能在线程/子进程中运行阻塞调用以获得非阻塞行为。下面是一个使用ProcessPoolExecutor的简单示例。在
ProcessPoolExecutor
import concurrent.futures import asyncio import os def list_files(): return os.listdir(".") def on_got_files(fut): print("got files {}".format(fut.result())) loop.stop() def main(): with concurrent.futures.ProcessPoolExecutor() as executor: fut = loop.run_in_executor(executor, list_files) fut.add_done_callback(on_got_files) print("Listing files asynchronously") if __name__ == "__main__": loop = asyncio.get_event_loop() loop.call_soon(main) loop.run_forever()
输出:
是的,我认为那是最好的办法。据我所知,没有对列表文件的本机非阻塞调用,因此您别无选择,只能在线程/子进程中运行阻塞调用以获得非阻塞行为。下面是一个使用
ProcessPoolExecutor
的简单示例。在输出:
^{pr2}$相关问题 更多 >
编程相关推荐