线程安全的数组删除

时间:2013-05-04 16:31:12

标签: javascript

我知道可以splice数组中的项目,或者使用delete删除它。前一种方法可能导致并发问题,例如:如果一个线程在数组上移动而另一个线程刚刚移位或拼接。如果在数组上使用delete,则forEach没有此问题,因为forEach将遍历数组中的漏洞。

然而,阵列不能永远保持增长并且需要扫描,可能导致与拼接相同的问题。听起来我需要锁定,但如果Javascript有任何设施,我会很开心。有什么想法吗?

2 个答案:

答案 0 :(得分:7)

不,因为JavaScript不是多线程的,所以不会出现并发问题。即使您使用Web工作者,也不会有任何问题,因为没有数据共享(工作人员通过传递消息进行通信)。即使在node.js中,您的脚本也不是多线程的。

所以只需使用splice,就不需要锁定数组。

答案 1 :(得分:1)

Javascript是单线程的,所以没有问题。