gpt4 book ai didi

node.js - 并发访问共享数组是 Node.js 中的一个问题

转载 作者:搜寻专家 更新时间:2023-10-31 22:30:46 25 4
gpt4 key购买 nike

Node 如何处理事件?一次一个,还是并发?

我需要知道是否要对共享数组进行并发访问,如以下示例所示:

var ws          = require("./ws.js"),
connections = [];

ws.createServer(function( socket ){

// add to connection array
socket.on('connect', function(){
connections.push(socket);
});

// remove from connection array
socket.on('close', function(){
var i = connections.indexOf(socket);
connections.splice(i,1);
});

}).listen(8000);

当客户端连接时,它的套接字被推送到数组中。当连接关闭时,我想将它从连接数组中删除。

但是,在其他语言中,这可能会导致并发问题。

外汇。如果两个连接同时关闭:

  • 连接 A 在索引 4 中找到它的套接字
  • 连接 B 在索引 5 中找到它的套接字
  • 连接 A 从索引 4 中删除自己
  • 连接 B 从索引 5 中删除自己(但它现在是索引 4)

这会成为问题吗,或者我可以假设一次只处理一个回调吗?

最佳答案

不,这不会成为问题,因为您的 node.js 代码是在单线程中执行的。您不会同时调用相同的函数。

关于node.js - 并发访问共享数组是 Node.js 中的一个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3776282/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com