我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
?