在NodeJS中:两个callback是否可以同时执行?

比方说,我有这个代码:

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); 

是否有可能将12打印到stdout (例如12121212121... )?

我已经testing过这一点,他们没有可交换,即1111111...222222222... ,但很less有testing是远远不能certificate,我担心像111111211111...2222222...可能发生。

换句话说:当我在Node中注册一些callback函数和事件处理函数时,两个callback函数可以同时执行吗?

(我知道这可能是启动两个进程,但是然后我们会有两个stdout ,上面的代码将被分割成单独的文件等)

另一个问题是:遗忘节点和一般说话:在单一过程中的任何语言,是否有可能在同一时间执行两个function(即以与上述相同的方式)?

不,每个callback都将在其自己的“执行框架”中执行。 在其他语言中,如果操作发生在不同的线程中,“并行执行”和由此引起的潜在的冲突是可能的。

只要callback代码是纯同步的,就不会有两个函数可以并行执行。 开始使用一些asynchornish的东西,如获取networking结果或插入数据库,tadam:你会有并行性问题。