为什么Nodejs可以做文件I / Oasynchronous,而Python asyncio不能?

最近我想在本地文件IO上使用Python async / await,但是在阅读以下链接后我发现它是不可能的:

asyncio是否支持文件操作的asynchronousI / O?

用asyncio逐行读取文件

解决scheme是基于线程的aiofiles模块。 但是在Nodejs中,使用基于标准POSIX函数的fs模块来完成文件IOasynchronous是非常完美和容易的。 为什么不能python做I / Oasynchronousnodejs可以吗?

但是Node.js的asynchronous文件I / O也是基于线程的:

请注意,除fs.FSWatcher()之外的所有文件系统API以及显式同步的文件系统API都使用libuv的线程池,对于某些应用程序可能会有令人惊讶和负面的性能影响,请参阅UV_THREADPOOL_SIZE文档以获取更多信息。

– 从https://nodejs.org/api/fs.html#fs_threadpool_usage

所以Node.js fs API和Python asyncio + aiofiles模块做的一样。

像这样使用multithreading:

 import threading t = threading.Thread(target=method, name='LoopThread') t.start() t.join()