01 2021 档案
摘要:JUC包-原子类 为什么需要JUC包中的原子类 首先,一个简单的i++可以分为三步: 读取i的值 计算i+1 将计算出i+1赋给i 这就无法保证i的原子性,即在i过程中,可能会出现其他线程也读取了i的 值,但读取到的不是更改过后的i的值。 原子类原理(AtomicInteger为例) 原子类的原子性
阅读全文
摘要:volatile关键字详解 volatile的三个特点 保证线程之间的可见性 禁止指令重排 不保证原子性 可见性 概念 可见性是多线程场景中才讨论的,它表示多线程环境中,当一个线程修改了共享变量的值,其他线程能够知道这个修改。 为什么需要可见性 缓存一致性问题: public class Test
阅读全文
摘要:单例模式7种实现及利弊分析 单例模式三要素 私有的构造方法; 指向自己实例的私有静态引用; 以自己实例为返回值的静态的公有方法 1.饿汉式 public class Singleton { private static Singleton singleton = new Singleton(); p
阅读全文
摘要:多机数据库的实现 - 复制 通过SLAVEOF命令或者设置slaveof选项,让一个服务器(从服务器)去复制另一个服务器(主服务器),达到“数据库状态一致”效果。 旧版复制(Redis 2.8版本之前) 功能实现 同步(sync) 从服务器向主服务器发送SYNC命令。 主服务器收到SYNC命令后执行
阅读全文

浙公网安备 33010602011771号