NodeJS同步IO实现

时间:2013-12-15 18:31:22

标签: node.js

Node.JS有synchronous versions用于文件操作:

fs.writeFileSync(file, data, ...)

根据this blog,底层OS调用仍然是异步的(用DTrace验证),所有同步版本都是“阻止事件循环”。

阻止事件循环(故意)是什么意思?是连续的setImmediate()还是更低级别的东西?

1 个答案:

答案 0 :(得分:1)

  

阻止事件循环(故意)是什么意思?

这只是意味着v8在等待IO完成时不会运行任何用户空间的javascript代码。通常v8会在等待IO时执行javascript,包括你的javascript和你的应用程序正在使用的任何库,但在这种情况下它不会。想到它的一种方法是在IO发生时暂停整个程序,而通常程序继续执行。