CountDownLatch ,juc下的同步工具類,簡稱閉鎖。它允許一條或者多條線程等待其他一條或者多條線程執(zhí)行完成后執(zhí)行。 CountDownLatch 是通過一個(gè)計(jì)數(shù)器...
CountDownLatch ,juc下的同步工具類,簡稱閉鎖。它允許一條或者多條線程等待其他一條或者多條線程執(zhí)行完成后執(zhí)行。 CountDownLatch 是通過一個(gè)計(jì)數(shù)器...
CyclicBarrier,juc下的同步工具類,簡稱循環(huán)柵欄。 讓一組線程同時(shí)達(dá)到一個(gè)屏障(同步點(diǎn))時(shí)被阻塞,直到最后一條線程達(dá)到屏障時(shí),所有在屏障前阻塞等待的線程都會(huì)被喚...
Semaphore,juc下的同步工具類,簡稱計(jì)數(shù)信號(hào)量。常用于控制同時(shí)訪問共享資源的線程數(shù)量,和Synchronized,ReentrantLock不同,這些都是獨(dú)占鎖,每...
對(duì)于正常的鏈表來說,如果需要查找某個(gè)數(shù)據(jù)時(shí),需要從頭到尾遍歷鏈表,效率比較低。而跳表就同時(shí)維護(hù)了多個(gè)鏈表,并且這些鏈表是分層的,用來快速查找數(shù)據(jù)。 最底層的鏈表維護(hù)了跳表內(nèi)所...
線程安全的阻塞隊(duì)列,用來處理 生產(chǎn)者-消費(fèi)者 問題。當(dāng)隊(duì)列容器滿時(shí),生產(chǎn)者線程被阻塞直到隊(duì)列未滿。當(dāng)隊(duì)列容器為空時(shí),消費(fèi)者線程阻塞直到隊(duì)列非空。 主要介紹BlockingQu...
java 提供的線程安全queue隊(duì)列分兩種,一種是阻塞隊(duì)列,類似實(shí)現(xiàn)BlockingQueue接口的類,使用加鎖方式實(shí)現(xiàn)。另外一種是非阻塞隊(duì)列,使用CAS方式實(shí)現(xiàn),類似Co...
CopyOnWriteArrayList, CopyOnWrite 的 ArrayList,按名字理解就是 在寫ArrayList時(shí)復(fù)制,即每次會(huì)使容器發(fā)生變化,調(diào)用add ...
R-B Tree,成為紅黑樹,每個(gè)節(jié)點(diǎn)上都有存儲(chǔ)表示節(jié)點(diǎn)顏色的標(biāo)記 大概了解一下的,只是簡單介紹一下紅黑樹特點(diǎn),不做樹的旋轉(zhuǎn)等操作分析。具體代碼可以研究jdk1.8中Hash...
1. 拉鏈法 jdk1.8 中HashMap,ConcurrentHashMap都是采用這個(gè)方法,使用鏈表來保存發(fā)生hash沖突的key,即不同的key有一樣的hash值,將...
在多線程環(huán)境下,HashMap不符合使用場景,因?yàn)椴皇蔷€程安全的,而如果使用Collections.synchronizedMap()來產(chǎn)生的Map又是一個(gè)使用全局鎖來進(jìn)行同...
HashMap 實(shí)現(xiàn)Map接口,用來存放鍵值對(duì),是java常用的集合之一。 jdk1.8之前是由數(shù)組+鏈表 來實(shí)現(xiàn),鏈表是為了解決hash沖突而存在的(拉鏈法)。jdk1.8...
ArrayList 和 LinkedList 都繼承AbstractList并實(shí)現(xiàn)List接口,都是java容器集合中的一部分存儲(chǔ)的元素都是有序的,可以重復(fù)的。 ArrayL...
LinkedList底層使用雙向鏈表來實(shí)現(xiàn),其中每個(gè)節(jié)點(diǎn)的數(shù)據(jù)如下,有數(shù)據(jù)項(xiàng),前驅(qū)指針,后繼指針三個(gè)元素 雙向鏈表和雙向循環(huán)鏈表的區(qū)別雙向循環(huán)鏈表的尾元素的前驅(qū)指針指向頭元素...
這里主要解決的是log配置文件引起的時(shí)間不一致問題其中是因?yàn)榕渲萌罩据敵龈袷綍r(shí)使用了這種配法引起的 逗號(hào)分隔兩部分配置,其中前面第一個(gè)配置是時(shí)間格式 后面第二個(gè)配置是時(shí)區(qū)的配...
在java中,可以使用 SimpleDateFormat 日期格式化類來對(duì)日期或者時(shí)間進(jìn)行格式化,但在多線程環(huán)境下使用要注意線程安全問題。以下代碼都是基于JDK1.8 源碼文...