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

Node.js + express.js and thread safety

假设我有一个项目数组,每个 GET 调用都会对此数组进行更改(可能是 add/remove/shift)

会是"thread-safe"吗?我知道 Node.js 是单线程的,但是否有可能处理两个 GET 请求 "simultaneously"?

这将是线程安全的,因为对数组的所有操作都是阻塞的。 node.js 中唯一不阻塞的操作是 I/Os。 由于您没有任何异步操作,因此您的情况没有问题。 (除非你需要做一些像访问数据库之类的事情?)

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

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