08 2017 档案
摘要:1. Java虚函数 1. Java虚函数 虚函数的存在是为了多态。 C++中普通成员函数加上virtual关键字就成为虚函数 Java中其实没有虚函数的概念,它的普通函数就相当于C++的虚函数,动态绑定是Java的默认行为。如果Java中不希望某个函数具有虚函数特性,可以加上final关键字变成非
阅读全文
摘要:乐观并发访问控制策略,CAS(V, E, N) 表示取出内存中变量V的值并与期望值E比较,同则变量值更新为N否则重试或报错,这几个步骤底层由CPU的cmpxchg指令保证原子操作。 存在ABA问题,通过数据加版本号解决,即比较时不仅比较变量值还比较版本,每次更新成功时增加版本号。JDK里Atomic
阅读全文
摘要:CAP原理指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。因此在进行分布式架构设计时,必须做出取舍。而对于分布式数据系统,分区容忍性是基本要求,否则就失去了价值。因此设计分布式数据系统,就是在一致性和可用性之间取一个平衡。对于大多数web应用,其实并不需要强一致性,因此牺牲一致性而换取高可用
阅读全文
摘要:总结: CAP指的是数据的一致性、系统的可用性、分区容错性;(这里的一致性指的是强一致性,又叫原子性或线性一致性;可用性指的是系统所有读写操作都要能终止,但没有时延上的要求) 分布式系统中P是必选项;在P必选的前提下,工程实践中一致性有不同程度,可用性也有不同等级,在保证分区容错性的前提下,放宽约束
阅读全文