} else {            //有競(jìng)爭(zhēng)的后續(xù)看
        }
    }

無競(jìng)爭(zhēng),直接獲取鎖

先看下首先獲取鎖并釋放鎖背后的redis都在做什么,可以利用redis的monitor來在后臺(tái)監(jiān)控redis的執(zhí)行情況。當(dāng)我們?cè)诜椒嗽黾覢RequestLockable之后,其實(shí)就是調(diào)用lock以及unlock,下面是redis命令:

  • 加鎖
    由于高版本的redis支持lua腳本,所以redisson也對(duì)其進(jìn)行了支持,采用了腳本模式,不熟悉lua腳本的可以去查找下。執(zhí)行l(wèi)ua命令的邏輯

  • 回獲取鎖失敗

  • this.await返回true,進(jìn)入循環(huán)嘗試獲取鎖。

                        this.getEntry(threadId).getLatch().tryAcquire(time, TimeUnit.MILLISECONDS);
                            }http://www.cnblogs.com/ASPNET2008/p/6385249.html

                            time -= System.currentTimeMillis() - currentTime;
                        } while(time > 0L);

      &n
        
		

網(wǎng)友評(píng)論