为什么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()
- 节点请求库错误:getaddrinfo ENOTFOUND dns.js 26
- 如何编写一个node.js函数等待事件在“返回”之前触发?
- 我应该在使用asynchronous队列时使用callback吗?
- node.js lambda函数将logging从sql迁移到elasticsearch,使用队列限制asynchronous调用
- JavaScriptcallback和函数式编程
- Dart在NodeJS中基于未来的API
- async.parallel是否也会阻塞代码?
- Node.js和Express:如何在asynchronous操作之后返回响应
- 如何在Node.js中创build一个API请求响应stream?