Node.js + express.js 和线程安全

Alo*_*lon 3 webserver multithreading node.js express

假设我有一个项目数组,每个 GET 调用都会对这个数组进行更改(可能是添加/删除/移位)

那会是“线程安全的”吗?我知道 Node.js 是单线程的,但是否有可能“同时”处理两个 GET 请求?

And*_*ndy 5

由于节点是单线程的,因此任何时候都只会执行一段代码。回调(例如来自远程 HTTP GET 请求的回调)将添加到事件循环的消息队列的末尾。当堆栈上没有更多函数时,程序会等待将消息添加到队列中,并运行该消息的函数(在本例中为请求回调函数)。

如果您正在向远程服务器发出并行请求,那么除非您依次运行请求,否则您不会每次都以相同的顺序完成请求。然而,回调函数永远不会同时运行——一次只能执行一个函数。