Guide
|
4f87ee846e
|
[docs update]完善问题:面向对象和面向过程的区别
|
2024-07-21 12:56:33 +08:00 |
|
Guide
|
b392abd1e7
|
Update atomic-classes.md
|
2024-07-17 13:31:32 +08:00 |
|
Mr.Hope
|
f9a11d3399
|
chore: update deps
|
2023-12-30 17:14:13 +08:00 |
|
Mr.Hope
|
7ea99a88d7
|
style: update linter
|
2023-10-27 06:44:02 +08:00 |
|
Guide
|
6469d6c097
|
[docs update]markdown格式规范
|
2023-10-08 16:33:50 +08:00 |
|
Guide
|
895bf6ee2a
|
[docs update]picture url -> cdn
|
2023-08-14 09:05:59 +08:00 |
|
Guide
|
20255f0f05
|
[docs update]更改部分文章的文末内容
|
2023-08-07 18:56:33 +08:00 |
|
Mr.Hope
|
0159cf184d
|
chore: format
|
2023-05-05 12:39:01 +08:00 |
|
Guide
|
a1a79a39fd
|
[docs fix]Heap 初始化的时间复杂度
|
2023-04-22 10:34:42 +08:00 |
|
Guide
|
96a46f9b05
|
[docs add]乐观锁和悲观锁详解
|
2023-01-31 16:27:36 +08:00 |
|
BaoPiao
|
ea1b70d703
|
AtomicMarkableReference 是可以解决ABA问题的
因为AtomicMarkableReference是通过内部类Pair实现数据存储,每次替换都是通过Pair.of方法new一个类出来进行替换原先的值
如果ABA出现,那么最后的A肯定是一个新的Pair实例,即当前的A和之前的A不是同一个实例,当现场使用compareAndSet则会返回false
以下是compareAndSet的实现:
Pair<V> current = pair;
return
expectedReference == current.reference &&
expectedMark == current.mark &&
((newReference == current.reference &&
newMark == current.mark) ||
casPair(current, Pair.of(newReference, newMark)));
|
2022-03-19 17:19:59 +08:00 |
|
guide
|
afee8d8a38
|
[docs fix]文件名规范&错误链接修复
|
2022-02-07 14:06:01 +08:00 |
|