JAVA?????????????CAS????
???????????? ???????[ 2013/11/18 10:47:17 ] ????????
??????????????????????????????CAS????????????????????
????++a??????a++???????????????????????????
public final int incrementAndGet() {
for (;;) {
int current = get();
int next = current + 1;
if (compareAndSet(current?? next))
return next;
}
}
|
????????java.util.concurrent.ConcurrentLinkedQueue?????????????????????????????κ???????????CAS?????????CAS???????????JAVA??????????????????????????????CAS???????
???????
????1??ABA????
????CAS???????????ABA???????????a++???a?????????????????????????????????????CAS?????a?????б?a???????????????????????????????κλ??£????????????????У???b?????????£???c?????????μ??????????????a?????????????????п??????′??????????a??????????????????Σ??????????滹??????????????????ABA?????????к????????????????????????????????????????a??????????2???a++??????????????汾??????汾??????????a++???????????????????????е??????
????2????????CPU????????????κ???????????Щ???ù???
????3??????????????????????????????????
???????
??????????CAS????????????????????????????????ó?????????????????????????????????????CAS????????????????????????????????????CAS?????????????????????CAS????????????????????????????????ABA????
??????
???·???
??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???·???????·
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11