概述 CMS 是 Concurrent Mark Sweep 的縮寫,由名字可知是一款并行的用標(biāo)記清除算法的收集器,其收集目標(biāo)是以獲取最短回收停頓時(shí)間的收集器,其是作用于老年...
概述 CMS 是 Concurrent Mark Sweep 的縮寫,由名字可知是一款并行的用標(biāo)記清除算法的收集器,其收集目標(biāo)是以獲取最短回收停頓時(shí)間的收集器,其是作用于老年...
枚舉根節(jié)點(diǎn)的效率 枚舉根節(jié)點(diǎn)是必須要停頓用戶線程的會引起 stop the world,如果按照上文所說的所有 GCRoots 去主動遍歷它們,將會是一個(gè)相當(dāng)耗時(shí)的過程,顯然...
整體介紹 線索二叉樹是鏈表表示的樹,它是利用了二叉樹未被使用的 n + 1個(gè)閑置的指針構(gòu)成的樹;根據(jù)二叉樹的三種遍歷方式構(gòu)成了三種不同的線索二叉樹;二叉樹的遍歷只能從根結(jié)點(diǎn)開...
二叉樹的創(chuàng)建 二叉樹的創(chuàng)建用到了輔助隊(duì)列,通過輔助隊(duì)列來創(chuàng)建二叉樹; 二叉樹的遍歷 前(先)序遍歷 1、遞歸實(shí)現(xiàn) 2、非遞歸實(shí)現(xiàn) 中序遍歷 1、遞歸實(shí)現(xiàn) 2、非遞歸實(shí)現(xiàn) 后序...
概念 二叉樹中所有結(jié)點(diǎn)的度不大于2的樹,可以為空,但是只要存在結(jié)點(diǎn),結(jié)點(diǎn)的度不能大于2;二叉樹是一種有序樹,樹的左右子樹不能顛倒,顛倒后則是一棵新二叉樹,即使只有左或右子樹也...
什么是樹 樹是n(n>=0)個(gè)結(jié)點(diǎn)的有限集。n=0是代表是一棵空樹; 非空樹滿足的條件(n>0) 1、有且僅有一個(gè)根節(jié)點(diǎn);2、當(dāng)n>1時(shí),其余結(jié)點(diǎn)又可以再分為m個(gè)有限集,并且...
概述 在上一篇文章中介紹了 JDK 中提供的線程池類 ThreadPoolExecutor 以及線程池的參數(shù),在實(shí)際使用中需要了解個(gè)參數(shù)的含義從而才能正確的使用線程池來達(dá)到我...
LockSupport 的功能 LockSupport 是JDK 中提供的一個(gè)工具類,用來掛起和喚醒線程,這個(gè)類是 JDK 中所有同步類的基礎(chǔ),JDK 中 AQS 的實(shí)現(xiàn)也是...
概述 這次介紹的是 Java8 中提供的一些日期類,它們是借鑒了 Joda Time 實(shí)現(xiàn)的一個(gè)更方便進(jìn)行日期操作的工具類的集合,下面介紹這些類的含義以及大概的使用方法。 L...
線程池狀態(tài)轉(zhuǎn)換流程 上一篇文章介紹了線程池的五種狀態(tài)各種的含義,今天來介紹這五種狀態(tài)是怎么流轉(zhuǎn)的,還是看線程池的源碼,首先來一張線程池狀態(tài)流轉(zhuǎn)圖 線程池各狀態(tài)轉(zhuǎn)換 RUNIN...
線程池類圖 ps:該線程池的類圖參考的是《Java 并發(fā)編程之美》。 線程池部分源碼解釋 如下是 ThreadPoolExecutor 的部分源碼,主要是體現(xiàn)線程池的幾種狀態(tài)...
避免使用 setNx 命令 1、setNx 帶來的問題 在使用 setNx 命令來給程序加分布式鎖的時(shí)候,一般都需要再使用 expire 命令來設(shè)置一個(gè)過期時(shí)間,避免死鎖現(xiàn)象...
ThreadLocal 能做什么 ThreadLocal 是 JDK 提供的一個(gè)工具類,它可以為每個(gè)使用它的線程創(chuàng)建一個(gè)線程本地的副本,從而能保證多個(gè)線程在訪問時(shí)的安全問題。...
什么是死鎖 首先死鎖的產(chǎn)品肯定是發(fā)生在兩個(gè)或者兩個(gè)以上的線程之間,因?yàn)榫€程請求獨(dú)占資源時(shí),由于資源被對方占用,自身被掛起等待;從而造成相互等待,在沒有干預(yù)時(shí),將會一直等待下去...
停止線程的方式 在 Java 中停止線程的方式有三種:1、線程的 run 方法執(zhí)行到最后,線程正常結(jié)束并退出;2、使用 Thread 類提供的 stop 方法去停止一個(gè)正在運(yùn)...
背景介紹 為什么進(jìn)行數(shù)據(jù)歸檔?因?yàn)樵趯?shí)際工作中,數(shù)據(jù)都是需要保存在數(shù)據(jù)庫的,但是由于數(shù)據(jù)庫本身的特性,當(dāng)數(shù)據(jù)量太大會對數(shù)據(jù)庫的性能有較大的影響,因此需要減少數(shù)據(jù),將一些過舊的...
概念介紹 要讓當(dāng)前正被 CPU 執(zhí)行的線程讓度出 CPU,其實(shí)有兩種方式。一種是被動的,比如當(dāng)前線程需要進(jìn)行 IO 操作;但是這里討論的是一種主動讓度的方式。而要達(dá)到主動的讓...