这个类是线程安全的吗?
是否有可能看到不一致的值?让我们说最初的值是80.线程1调用setA(100)并进入函数但尚未调用a.set(100)并且线程2同时调用getA().线程2有可能看到80吗?
public class A {
private AtomicInteger a;
public int getA() {
return a.get()
}
public void setA(int newVal){
a.set(newVal);
}
}
Run Code Online (Sandbox Code Playgroud)
我知道同步它将保证线程2看到100,但不确定AtomicInteger.
我试图在每个请求返回的每个成功响应时递归地发出ajax请求我是否容易出现堆栈溢出?如果是这样,你有更好的方法吗?我的要求是最初执行一个ajax请求,如果没有完成返回的json执行另一个具有相同参数的ajax请求......等,直到我得到一个完成标志.
go: function (r) {
Ext.Ajax.request({
url: 'bleh',
success: function (response) {
var data = Ext.decode(response.responseText); // decode json into object
r.update();
if (!data.isDone) go(r);
}
});
}
Run Code Online (Sandbox Code Playgroud)