專(zhuān)業(yè)從事成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站,高端網(wǎng)站制作設(shè)計(jì),
成都微信小程序,網(wǎng)站推廣的成都做網(wǎng)站的公司。優(yōu)秀技術(shù)團(tuán)隊(duì)竭力真誠(chéng)服務(wù),采用
H5網(wǎng)站設(shè)計(jì)+CSS3前端渲染技術(shù),
響應(yīng)式網(wǎng)站開(kāi)發(fā),讓網(wǎng)站在手機(jī)、平板、PC、微信下都能呈現(xiàn)。建站過(guò)程建立專(zhuān)項(xiàng)小組,與您實(shí)時(shí)在線互動(dòng),隨時(shí)提供解決方案,暢聊想法和感受。hasQueuedPredecessors()解析判斷隊(duì)列是否有等待資源的線程
public final boolean hasQueuedPredecessors() {
//讀取尾節(jié)點(diǎn)
Node t = tail;
//讀取頭節(jié)點(diǎn)
Node h = head;
//s是首節(jié)點(diǎn)h的后繼節(jié)點(diǎn)
Node s;
return h != t &&
((s = h.next) == null || s.thread != Thread.currentThread());
}
- h != t 什么時(shí)候是false 就是首尾節(jié)點(diǎn)相同時(shí)
(1) 首尾節(jié)點(diǎn)都是空的 說(shuō)明隊(duì)列是空的,無(wú)須等待,返回true
(2) 首尾節(jié)點(diǎn)都不是空的 而且指向同一個(gè)內(nèi)容,說(shuō)明隊(duì)列內(nèi)只有一個(gè)節(jié)點(diǎn),無(wú)須等待,返回false - h != t 什么時(shí)候是true 就是首尾節(jié)點(diǎn)不相同時(shí),說(shuō)明隊(duì)列中至少有兩個(gè)不同節(jié)點(diǎn)
- h != t 返回true,(s = h.next) == null返回true
因?yàn)樵诋?dāng)前線程還在做嘗試獲取同步狀態(tài)的操作時(shí),已經(jīng)有另一個(gè)線程準(zhǔn)備入隊(duì)了,當(dāng)前線程慢人一步,自然就得去排隊(duì)。 - h != t 返回true,(s = h.next) == null返回false,s.thread != Thread.currentThread()返回true。
(s = h.next) == null返回false表示首節(jié)點(diǎn)是有后繼節(jié)點(diǎn)的。
s.thread != Thread.currentThread()返回true表示后繼節(jié)點(diǎn)的相關(guān)線程不是當(dāng)前線程,所以首節(jié)點(diǎn)雖然有后繼節(jié)點(diǎn),但是后繼節(jié)點(diǎn)相關(guān)的線程卻不是當(dāng)前線程,那當(dāng)前線程自然得老老實(shí)實(shí)的去排隊(duì)。
文章標(biāo)題:知識(shí)總結(jié)-創(chuàng)新互聯(lián)
URL地址:
http://weahome.cn/article/ijiie.html