1. 自旋鎖與自適應(yīng)自旋 為了讓線(xiàn)程等待,我們只須讓線(xiàn)程執(zhí)行一個(gè)忙循環(huán)(自旋)。自旋等待不能代替阻塞,如果鎖被占用的時(shí)間很短,自旋等待的效果就會(huì)非常好,反之如果鎖被占用的時(shí)間...
1.互斥同步(synchronized,ReentrantLock) synchronized:是一種塊結(jié)構(gòu)的同步語(yǔ)法,synchronized關(guān)鍵字經(jīng)過(guò)Javac編譯之后,...
主內(nèi)存與工作內(nèi)存 Java內(nèi)存模型規(guī)定了所有的變量都存儲(chǔ)在主內(nèi)存中。每條線(xiàn)程還有自己的工作內(nèi)存,線(xiàn)程的工作內(nèi)存中保存了被該線(xiàn)程使用的變量的主內(nèi)存副本,線(xiàn)程對(duì)變量的所有操作(讀...
靜態(tài)分派(重載) 對(duì)于 Human man = new Man();,Human稱(chēng)為變量的靜態(tài)類(lèi)型,Man稱(chēng)為變量的實(shí)際類(lèi)型。所有依賴(lài)靜態(tài)類(lèi)型來(lái)決定方法執(zhí)行版本的分派動(dòng)作,都...
引用計(jì)數(shù)算法 在對(duì)象中添加一個(gè)引用計(jì)數(shù)器,每當(dāng)有一個(gè)地方引用它時(shí),計(jì)數(shù)器值就加一;當(dāng)引用失效時(shí),計(jì)數(shù)器值就減一;任何時(shí)刻計(jì)數(shù)器為零的對(duì)象就是不可能再被使用的。 優(yōu)點(diǎn):原理簡(jiǎn)單...
對(duì)象的創(chuàng)建 1.當(dāng)java虛擬機(jī)遇到一條字節(jié)碼new指令時(shí),首先檢查這個(gè)指令的參數(shù)是否能在常量池中定位到一個(gè)類(lèi)的符號(hào)引用,并且檢查這個(gè)符號(hào)引用代表的類(lèi)是否已被加載、解析和初始...
程序計(jì)數(shù)器 程序計(jì)數(shù)器(Program Counter Register)是一塊較小的內(nèi)存空間,它可以看作是當(dāng)前線(xiàn)程所執(zhí)行的字節(jié)碼的行號(hào)指示器。在Java虛擬機(jī)的概念模型里,...
集群 一個(gè)集群可以有一個(gè)或者多個(gè)節(jié)點(diǎn),節(jié)點(diǎn)是一個(gè)elasticsearch實(shí)例,本質(zhì)上是一個(gè)java進(jìn)程。 節(jié)點(diǎn) Master-eligible Node & Master ...
1.類(lèi)加載的時(shí)機(jī) 一個(gè)類(lèi)型從被加載到虛擬機(jī)內(nèi)存中開(kāi)始,到卸載出內(nèi)存為止,它的整個(gè)生命周期將會(huì)經(jīng)歷加載(Loading)、驗(yàn)證(Verification)、準(zhǔn)備(Prepara...
此文分析AQS的最后部分,CountDownLatch、CyclicBarrier、Semaphore。 CountDownLatch CountDownLatch是AQS共...
此篇文章分析AbstractQueuedSynchronizer(AQS)類(lèi)里的ConditionObject。 Condition 首先要明白Condition的應(yīng)用場(chǎng)景,...
本人由于考研所以很久沒(méi)有系統(tǒng)的看過(guò)java?,F(xiàn)在準(zhǔn)備重新系統(tǒng)的將java(jdk12)并發(fā)包 java.util.concurrent 源碼重新簡(jiǎn)單梳理一遍,借用簡(jiǎn)書(shū)給記錄下...