如果在Node.js中运行I / O密集型任务,如某些异步数据库操作,使用node-fibers ,它是阻塞的吗?

我没有使用节点光纤但是似乎 - 如果在处理HTTP请求的代码中使用,其中运行了一些长期无阻塞的I / O代码 - 它现在会阻止其他请求访问您的应用程序。这是真的吗?有点细节,为什么这是真/假也会非常有用。

有帮助吗?

解决方案

纤维允许程序员写入“线程”阻塞语句JavaScript代码。但它的实现没有阻塞,代码等同于Node.js Async事件代码。LaverDets实现在某些时候暂停光纤执行,就像Async Node.js模型一样,并且可以在以后的时间内恢复。

纤维更多的句法糖,它们不会更改Node.js异步模型。唯一的区别是,光纤正在创建不同的执行堆栈(如果我是正确的),这是一个略微开销到正常的NodeJS异步代码。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top