私は単純なコードを持っているとしましょう。JS&並行性の問題?
var counter = 0;
var sharedResource = [];//some shared resource
function incrementAndModify(){
if(counter == 0) {
sharedResource.push(Math.random());//very sensitive data
counter++;
}
}
function init(){
incrementAndModify();
doAjaxGetWithCallback(function(){incrementAndModify();});
incrementAndModify();
}
質問:incrementAndModify()関数がアトミックに実行されるかどうか私は、JSが単一のスレッドで実行されており、並行性の問題はありません。しかし、質問はまだ開いています(少なくとも私にとって)。私のような何かを書くことができ
代わり
doAjaxGetWithCallback(function(){incrementAndModify();});
の:
doAjaxGetWithCallback(function(){
doSomeCrazyStuffThatDoesNotUseSharedResource();
incrementAndModify();
doSomeOtherCrazyStuffThatDoesNotUseSharedResource();
});
アトミックな意味は?私はそれが次々に3回呼び出されると思います。どの質問がまだ開いていますか? – zod
私は多くの考えを持っていますが、それらのすべてが真実ではありません。 – hades