亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

java - AbstractQueuedSynchronizer中CAS的疑惑

瀏覽:82日期:2024-01-10 11:06:33

問(wèn)題描述

這段代碼是AQS框架中將當(dāng)前節(jié)點(diǎn)入隊(duì)的操作。

Node pred = tail;if (pred != null) { node.prev = pred; if (compareAndSetTail(pred, node)) {pred.next = node;return node; }}

上面代碼中pred被賦值為尾節(jié)點(diǎn),node為當(dāng)前節(jié)點(diǎn)。我理解的將新節(jié)點(diǎn)插入鏈表尾處的邏輯應(yīng)當(dāng)如下:node.prev = pred; node節(jié)點(diǎn)的前驅(qū)指向尾節(jié)點(diǎn)pred.next = node; 將尾節(jié)點(diǎn)的后繼設(shè)置為當(dāng)前節(jié)點(diǎn)tail = node; 將node節(jié)點(diǎn)設(shè)置為尾節(jié)點(diǎn)對(duì)于上面代碼我的疑問(wèn)如下:如果尾節(jié)點(diǎn)不為空,node節(jié)點(diǎn)的前驅(qū)會(huì)指向尾節(jié)點(diǎn),然后調(diào)用CAS交換pred和node的值。此時(shí)pred(即tail)的值應(yīng)該已經(jīng)是當(dāng)前節(jié)點(diǎn)node的值了,再執(zhí)行pred.next=node是什么意思呢,這是否存在邏輯問(wèn)題?

問(wèn)題解答

回答1:

TZ可能對(duì)compareAndSetTail的理解有誤。

private final boolean compareAndSetTail(Node expect, Node update) {return unsafe.compareAndSwapObject(this, tailOffset, expect, update); }

在AbstractQueuedSynchronizer的tailOffset位置比較pred的值和期望的node值,如果相同則更新tailOffset位置的值。

static { tailOffset = unsafe.objectFieldOffset (AbstractQueuedSynchronizer.class.getDeclaredField('tail')); ...}

compareAndSetTail(pred, node) 這句代碼執(zhí)行完成之后,被修改只是對(duì)象AbstractQueuedSynchronizer的tailOffset的值,也就是成員變量tail的值,對(duì)于pred的值沒(méi)有任何影響。至于雙向鏈表,尾部插入,邏輯上沒(méi)有問(wèn)題。

回答2:

這個(gè)設(shè)計(jì)是一個(gè)雙向鏈表.B.prev == AA.next == B

compareAndSetTail 設(shè)置成功只是將 tail 更新為當(dāng)前node. pred.next 是將上一個(gè)尾部節(jié)點(diǎn)的next設(shè)置為當(dāng)前node這邏輯不存在問(wèn)題.

標(biāo)簽: java
相關(guān)文章:
主站蜘蛛池模板: 欧美亚洲黄色片 | 亚洲国产一区在线二区三区 | 一级二级黄色片 | 成人久久精品一区二区三区 | 三片在线观看 | 青青青青青免精品视频 | 亚洲精品 国产 日韩 | 国产九九免费视频 | 一二三区乱码一区二区三区码 | 不卡的毛片 | 国产69精品久久久久9牛牛 | 国产免费a级片 | 久草手机视频在线观看 | 婷婷亚洲综合一区二区 | 91短视频黄 | 欧美成人v视频免费看 | 欧美性综合| 日本一区二区在线不卡 | 成人免费视频视频在线不卡 | 日本一区二区高清不卡 | 99久久国产免费 - 99久久国产免费 | 久久99精品视频在线在线观看 | 免费高清欧美大片在线观看 | 国产在线毛片 | 国产黄色片在线看 | 婷婷综合在线观看丁香 | 免费视频精品一区二区三区 | 丝袜足交在线 | 手机日韩理论片在线播放 | 亚洲精品综合一区在线 | 精品国产日韩亚洲一区二区 | 国产日产欧产美一二三区 | 日韩在线免费播放 | 一级做a爱过程免费视频时看 | 国产亚洲欧美日韩在线观看一区二区 | 国产露脸对白刺激3p在线 | 亚洲第一黄色网址 | 精品欧美日韩一区二区 | 国产一区二区免费视频 | 成人永久福利在线观看不卡 | 免费观看一级欧美在线视频 |