Merge branch 'master' of https://github.com/CyC2018/InterviewNotes
This commit is contained in:
commit
29b2945d78
|
@ -1400,7 +1400,7 @@ public final int getAndAddInt(Object var1, long var2, int var4) {
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
ABA :如果一个变量 V 初次读取的时候是 A 值,它的值被改成了 B,后来又被改回为 A,那 CAS 操作就会误认为它从来没有被改变过。J.U.C 包提供了一个带有标记的原子引用类“AtomicStampedReference”来解决这个问题,它可以通过控制变量值的版本来保证 CAS 的正确性。大部分情况下 ABA 问题不会影响程序并发的正确性,如果需要解决 ABA 问题,改用传统的互斥同步可能会比原子类更高效。
|
ABA :如果一个变量 V 初次读取的时候是 A 值,它的值被改成了 B,后来又被改回为 A,那 CAS 操作就会误认为它从来没有被改变过。J.U.C 包提供了一个带有标记的原子引用类“AtomicStampedReference”来解决这个问题,它可以通过控制变量值的版本来保证 CAS 的正确性。大部分情况下 ABA 问题不会影响程序并发的正确性,如果需要解决 ABA 问题通常会采用携带版本号的方式(e.g `AtomicStampedReference`),或者改用传统的互斥同步可能会比原子类更高效。
|
||||||
|
|
||||||
### 3. 无同步方案
|
### 3. 无同步方案
|
||||||
|
|
||||||
|
|
|
@ -95,7 +95,11 @@
|
||||||
|
|
||||||
**一致性哈希**
|
**一致性哈希**
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
Distributed Hash Table(DHT):对于哈希空间 [0, 2<sup>n</sup>-1],将该哈希空间看成一个哈希环,将每个节点都配置到哈希环上。每个数据对象通过哈希取模得到哈希值之后,存放到哈希环中顺时针方向第一个大于等于该哈希值的节点上。
|
Distributed Hash Table(DHT):对于哈希空间 [0, 2<sup>n</sup>-1],将该哈希空间看成一个哈希环,将每个节点都配置到哈希环上。每个数据对象通过哈希取模得到哈希值之后,存放到哈希环中顺时针方向第一个大于等于该哈希值的节点上。
|
||||||
|
=======
|
||||||
|
Distributed Hash Table(DHT):对于哈希空间 [0, 2<sup>n</sup>-1],将该哈希空间看成一个哈希环,将每个节点都配置到哈希环上。每个数据对象通过哈希取模得到哈希值之后,存放到哈希环中顺时针方向第一个大于等于该哈希值的节点上。
|
||||||
|
>>>>>>> 89c1b5018be9d043faf8ea04fd1d52ebfdf6f5e8
|
||||||
|
|
||||||
<div align="center"> <img src="../pics//d2d34239-e7c1-482b-b33e-3170c5943556.jpg"/> </div><br>
|
<div align="center"> <img src="../pics//d2d34239-e7c1-482b-b33e-3170c5943556.jpg"/> </div><br>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user