我有一个思想实验。在我的代码中,我有一个全局变量 sayvar changeMe;
并且我进行了一些 Ajax 调用。
//call One -- third param is the callback function
ajaxFunction(url1, params,function(data){
changeMe = data;
});
//call Two
ajaxFunction(url2, params,function(data){
changeMe = data;
});
因此changeMe
value 将取决于最后完成的 Ajax 调用,这意味着最后完成的调用将覆盖 value。
如果两个调用完全在同一时间完成,相同的时间戳怎么办?
由于 Javascript 是单线程的,我们通常不会遇到这个问题,但这可能会出现在setTimeout
Ajax 调用的情况下。我不知道如何精确地复制这个问题,所以它仍然是一个思想实验。
那么在多线程条件下如何处理死锁呢?
我更喜欢changeMe
will be url1
or之类的答案url2
,以及清晰的情况解释。
提前致谢