如上就是双重检查锁的正确代码 。 看起来是不是有点像单例设计模式? 但是普通的单例模式的写法貌 似只有一个if(instance==null)的判断, 这里的if判断有两个, 这就是所谓的双重检查 。对于锁就是代码 中的synchronized代码块 。 两个判断+一个synchronized=双重检查锁。
看看双重检查所的优势: 如上面代码所示, 如果第一次检查instance不为null, 那么就不需要执行下面 的加锁和初始 化 *** 作 。 因此, 可以大幅降低synchronized带来的性能开销。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)