我有一个地图,其中保留了许多支票的状态。每次检查只会使用.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
答案 0 :(得分:2)
否,两个函数“同时”执行myMap.set
没问题-这是因为它们没有同时执行。 JavaScript是单线程的;尽管两个setInterval
中的功能都每秒激活一次,但它们依次而不是同时激活。因此,没有问题。