我AtomicInteger用来比较和设置同步状态。就这个
private final AtomicInteger state = new AtomicInteger(1);
public void tryDo(){
if(state.compareAndSet(1, 2)){
//do some usefule
}
}
问题是以下情况是否可能:
state = 1- 两个或多个线程试图
compareAndSet将状态2 - 所有线程都
2.失败并且状态保持不变1
是否记录在案?它依赖于平台吗?怎么样x86-64?