我知道可以splice
数组中的项目,或者使用delete
删除它。前一种方法可能导致并发问题,例如:如果一个线程在数组上移动而另一个线程刚刚移位或拼接。如果在数组上使用delete
,则forEach
没有此问题,因为forEach
将遍历数组中的漏洞。
然而,阵列不能永远保持增长并且需要扫描,可能导致与拼接相同的问题。听起来我需要锁定,但如果Javascript有任何设施,我会很开心。有什么想法吗?
答案 0 :(得分:7)
不,因为JavaScript不是多线程的,所以不会出现并发问题。即使您使用Web工作者,也不会有任何问题,因为没有数据共享(工作人员通过传递消息进行通信)。即使在node.js中,您的脚本也不是多线程的。
所以只需使用splice
,就不需要锁定数组。
答案 1 :(得分:1)
Javascript是单线程的,所以没有问题。