BlockingQueue 阻塞隊(duì)列,顧名思義,首先它是一個(gè)隊(duì)列,而一個(gè)隊(duì)列在數(shù)據(jù)結(jié)構(gòu)中所起的作用大致如下圖所示: 從上圖我們可以很清楚看到,通過一個(gè)共享的隊(duì)列,可以使得數(shù)據(jù)...
BlockingQueue 阻塞隊(duì)列,顧名思義,首先它是一個(gè)隊(duì)列,而一個(gè)隊(duì)列在數(shù)據(jù)結(jié)構(gòu)中所起的作用大致如下圖所示: 從上圖我們可以很清楚看到,通過一個(gè)共享的隊(duì)列,可以使得數(shù)據(jù)...
LSM簡(jiǎn)介 Log Structured Merge Tree,下面簡(jiǎn)稱 LSM。2006年,Google 發(fā)表了 BigTable[https://static.googl...
簡(jiǎn)介 整理一些面試時(shí)線程池常問的問題 1.核心線程如何一直?;?答案:由于任務(wù)都是存在阻塞隊(duì)列中,Worker從隊(duì)列拿任務(wù)時(shí)通過阻塞隊(duì)列take()方法讓線程等待,使得Wor...
worker線程 線程池的每一個(gè)線程其實(shí)就是一個(gè)封裝好的worker。 Worker又繼承了AQS,通過鎖來保證線程安全1.lock方法一旦獲取了獨(dú)占鎖,表示當(dāng)前線程正在執(zhí)行...
前言 由于線程池涉及的知識(shí)點(diǎn)比較多,會(huì)以上中下三篇文章來敘述;當(dāng)我們面試時(shí),如果遇到了面試官讓你說一下線程池,我們可以先講一下線程池的核心思想:1.復(fù)用線程,降低線程創(chuàng)建與銷...
簡(jiǎn)介 阿里面試的時(shí)候經(jīng)常會(huì)問到高并發(fā),解決并發(fā)的方案就是cas,也是AtomicLong這些原子類,那么如果問你除了Atomic這些原子類之外的?解法呢? cas java....
前言 在一線開發(fā)中,需要快速完成業(yè)務(wù)需求開發(fā),此時(shí)不可避免的出現(xiàn)if...else..這種硬編碼判斷邏輯,當(dāng)代碼包含大量這種結(jié)構(gòu)時(shí)會(huì)降低代碼的可讀性,擴(kuò)展性,并且不易維護(hù),策...
一.前言 在日常的開發(fā)中,經(jīng)常需要對(duì)方法參數(shù)進(jìn)行校驗(yàn)(非空、長(zhǎng)度等)。如果采用hardcode去校驗(yàn)(if..else..),會(huì)造成代碼冗余,復(fù)用性低,導(dǎo)致維護(hù)成本比較高。借...