假设我有这个代码:
function fn(n)
{
return function()
{
for(var k = 0; k <= 1000; ++k) {
fs.writeSync(process.stdout.fd, n+"\n");
}
}
}
setTimeout(fn(1), 100);
setTimeout(fn(2), 100);
是否有可能1
并且2
可以stdout
互换打印(例如12121212121...
)?
我已经对此进行了测试,但它们并没有互换使用,即1111111...222222222...
,但很少有测试无法证明,我担心会发生类似的111111211111...2222222...
事情。
换句话说:当我在 Node 中注册一些回调和事件处理程序时,两个回调可以同时执行吗?
(我知道这可以通过启动两个进程来实现,但是我们会有两个stdout
,上面的代码将被拆分成单独的文件,等等。)
另一个问题:忘记节点并笼统地说:在单个进程上的任何语言中,两个函数是否可以同时执行(即以与上述相同的方式)?