同时修改地图是否安全?

时间:2018-09-19 02:21:39

标签: javascript node.js

我有一个地图,其中保留了许多支票的状态。每次检查只会使用.set来修改一个键,如果两个并发检查试图同时修改地图,会不会有问题?

我让setInterval在后台进行一些检查并在地图中设置检查的状态。在其他语言中,如果有两件事试图同时编辑地图,我将遇到问题。不是实际的代码,但我想知道下面的方法是否可以安全进行。

var myMap = new Map();

var a = setInterval(someCheckA, 1000);
var b = setInterval(someCheckB, 1000);


function someCheckA() {
    myMap.set('A', 'status is good');
}

function someCheckB() {
    myMap.set('B', 'status is good');
}

// do stuff with myMap

1 个答案:

答案 0 :(得分:2)

否,两个函数“同时”执行myMap.set没问题-这是因为它们没有同时执行。 JavaScript是单线程的;尽管两个setInterval中的功能都每秒激活一次,但它们依次而不是同时激活。因此,没有问题。