我对 Node JS 很着迷并且已经开始深入研究,但是,来自 Java 背景,我对下面这样的示例感到困惑,其中进行了依赖共享变量来跟踪的异步调用链(以便确定何时他们都完成了执行另一个动作)。如果这个问题过于基本,我深表歉意,但是我一直在寻找这个问题并没有找到解释,我可能没有使用正确的术语。
如果你在 Java 中做了这样的事情,你需要使变量 n 同步以避免冲突,否则它的完整性可能会受到损害(这只是基于我阅读的一些更复杂的示例的伪代码,如果它不完美,对不起)
var n = 100
var funct_a = function(callback) {
return function() {
if (n == 0)
callback()
else
n--
}
}
for ( a in someArray) {
funct_a (function() {
//do something with variable a...
})
}
是不是这些只在一个“线程”中运行,因此它们实际上并没有在不同的 CPU 内核上运行,并且实际上不能同时写入变量?对于我来说,这似乎是解决这些类型冲突的一些核心节点服务器逻辑的唯一合乎逻辑的解释。任何可以阐明这一点的信息都值得赞赏。