1. 排序過程 trip 1:將第二個元素與第一個元素作比較,并根據(jù)條件決定是否進行交換,內(nèi)循環(huán)結(jié)束后前兩個元素有序trip 2:從后往前將第三個元素與前兩個已經(jīng)有序的元素逐...
本文從源碼角度,以ReentrantLock的lock、lockInterruptibly、unlock為入口,對ReentrantLock中公平鎖與非公平鎖的上鎖、解鎖、處...
1. HashMap繼承關系簡介 1.1 HashMap繼承關系圖 1.2 HashMap的父類及接口簡介 (1)Map:值可重復,鍵不能重復,允許鍵為null(2)Abst...
1. 線性探測法 ThreadLocal的作用,簡而言之,就是在多線程環(huán)境下,有些數(shù)據(jù)會被共享,ThreadLocal可以實現(xiàn)將共享數(shù)據(jù)的訪問限制在當前線程中。每個Threa...
ArrayBlockingQueue底層是用數(shù)組實現(xiàn)的有界(即大小固定)的FIFO隊列,其中利用兩個字段,將該數(shù)組構(gòu)造成了環(huán)形數(shù)組。ArrayBlockingQueue體現(xiàn)了...
LinkedBlockingQueue是用鏈表實現(xiàn)的FIFO隊列,該隊列大小默認是Integer.MAX_VALUE,可以認為是無界的,也可指定大小,使其有界?;阪湵淼年犃?..
本文從源碼角度,以AbstractQueuedSynchronizer.ConditionObject的await、signal、signalAll為入口,對基于Reentr...
1. 線程狀態(tài)及轉(zhuǎn)換 1.1 六種線程狀態(tài) Java的Thread.State內(nèi)部類中定義了6種線程狀態(tài),一個線程在任意時刻只能對應一種狀態(tài),可以通過特定方法進行狀態(tài)切換。下...