你好,jquery中ajax默认是异步,即async=true。如果要转变成同步,则async=false即可。具体如下操作:
jQuery.ajax({
type: "post",
url: url,
cache: false,
async: false,
contenttype: "text/htmlcharset=gbk",
success: function(data){
if(data=='1'){
same=true
}
}
})
如果满意,望采纳,谢谢!
异步方法:调用方法,在方法中启动子线程
异步调用:启动子线程调用方法
异步转同步:由于同步简单易用,将异步方法进行封装,同步调用,等待结果
1个Lock、2个Condition(NotEmpty和NotFull)。入队结束后NotEmpty发出信号,出队结束后NotEmpty发出信号。
DefaultFuture.java
get(int timeout)方法和doReceived(Response res)方法,可以看到使用Lock和Condition
Lock中有一个volatile标示到state,在获取锁和释放锁都会对volatile变量读写
根据happen-before特性
线程1-doSomething>线程1-unlock
线程1-unlock时会写state>线程2-lock时会读state(volatile变量写先于读)
线程1-doSomething>线程2-lock(根据前2个和happen-before传递性)
通过传递性和volatile变量写先于读,保证加锁后操作可见