当一个函数或进程正在更新全局数组时,是否有任何不一致的可能性,而其他一些进程在此期间尝试访问javascript中的同一个数组?如果是这样,在交易开启时尝试访问文件或DBMS时是否存在类似于操作系统的预防机制?例如:函数fun1每10秒运行一次& fun2由按钮点击触发:
<script>
a = new Array(); //a is global
setInterval(fun1,10000);
function fun2()
{
for(var j=0;j<1000;j++)
{
a[j]=j;
}
}
function fun1()
{
for(var i=0;i<1000;i++)
{
a[i]=i+1;
}
}
</script>
<input type="button" value="Update Array" onclick="fun2()">
上面的代码是一个示例来证明这一点。在这种情况下,按下按钮没有任何意义,因为只有时间才是重要的事情。我只想知道这个事实,或者javascript是否有任何功能来防止一些其他函数访问数组元素,直到所有元素完全更新。对不起,如果我问一个愚蠢的问题!
答案 0 :(得分:1)
Javascript不是一种多线程语言。所以你所做的就是按顺序发生。它是否是一个特征是有争议的,但它确实阻止了两个不同过程的写作:)