Condition.signal
生活随笔
收集整理的這篇文章主要介紹了
Condition.signal
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
await方法會(huì)阻塞ThreadA,然后ThreadB搶占到了鎖獲得了執(zhí)行權(quán)限,這個(gè)時(shí)候在ThreadB中調(diào)用了Condition的signal()方法,將會(huì)喚醒在等待隊(duì)列中節(jié)點(diǎn)
public final void signal() { if (!isHeldExclusively()) //先判斷當(dāng)前線程是否獲得了鎖,這個(gè)判斷比較簡(jiǎn)單,直接用獲得鎖的線程和當(dāng)前線程相比即可 throw new IllegalMonitorStateException(); Node first = firstWaiter; // 拿到 Condition隊(duì)列上第一個(gè)節(jié)點(diǎn) if (first != null) doSignal(first); }?
總結(jié)
以上是生活随笔為你收集整理的Condition.signal的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: isOnSyncQueue
- 下一篇: Condition.doSignal