乐观锁的一种实现方式——CAS
在JDK1.5
中新增java.util.concurrent(J.U.C)就是建立在CAS之上的。相对于对于synchronized这种阻塞算法,CAS是非阻塞算法的一种常见实现。所以J.U.C在性能上有了很大的提升。
借助CAS(AtomicReference)实现单例模式:
public final class SingleInstance {
private static final AtomicReference<SingleInstance> instanceRef = new AtomicReference<>();
private SingleInstance() {
}
public static SingleInstance getInstance() {
for (; ; ) {
SingleInstance instance = instanceRef.get();
if (instance != null) {
return instance;
}
instanceRef.compareAndSet(null, new SingleInstance());
}
}
}
与sychronized实现的单例相比
优点:
缺点:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。