
背景介紹 Kafka簡介 Kafka是一種分布式的会前,基于發(fā)布/訂閱的消息系統(tǒng)姥闪。主要設(shè)計目標(biāo)如下: 以時間復(fù)雜度為O(1)的方式提供消息持久化能力,即使對TB級以上數(shù)據(jù)也能保證...
前言 最近感觸頗深,原諒我在開頭寫心情日記篓足。介意的跳過看正文段誊。 市場 趨勢 近幾年,技術(shù)市場對新人越來越不友好栈拖,社招幾乎是三年經(jīng)驗起步连舍。所以很多人都說能走校招千萬別走社招,年...
阻塞隊列 特性 隊列是空的時候贴彼,從隊列獲取元素的操作會被阻塞 隊列是滿的時候潜腻,往隊列添加元素的操作會被阻塞 實現(xiàn) 線程池 定義 把并發(fā)任務(wù)傳遞給一個線程池,來替代為每個并發(fā)執(zhí)...
Lock和synchronized同步塊一樣器仗,是線程的同步機(jī)制砾赔,而且鎖是由synchronized同步塊的方式進(jìn)行實現(xiàn)的。 一個簡單的鎖實現(xiàn) while(isLocked)循...
場景介紹 lock()方法在this上同步青灼,然后在monitorObject上同步暴心。如果isLocked為true,調(diào)用lock()方法的線程會在wait()方法上阻塞杂拨。 如...
饑餓 如果一個線程因為CPU時間全部被其他線程搶走而得不到CPU運(yùn)行時間专普,這種狀態(tài)被稱之為“饑餓”。 導(dǎo)致饑餓的原因 高優(yōu)先級線程吞噬所有的低優(yōu)先級線程的CPU時間 線程被永...
線程死鎖 死鎖是兩個或更多線程阻塞著等待其它處于死鎖狀態(tài)的線程所持有的鎖弹沽。死鎖通常發(fā)生在多個線程同時但以不同的順序請求同一組鎖的時候檀夹。 如果child和parent是同一個對...
Busy Wait 一個線程間相互通信的方法是使用線程間共享對象的一個變量進(jìn)行通信。 線程B等待線程A將hasDataToProcess的值設(shè)置為true策橘,這種方法cpu利用...
Java Synchronized 塊 Synchronized塊是用來解決race condition炸渡。Synchronized塊是基于對象,作用在同一對象的同步快保證在同...
Java內(nèi)存模型指定了JVM和計算機(jī)內(nèi)存是如何進(jìn)行協(xié)作 Java內(nèi)存模型的原理 Java內(nèi)存被分為線程棧和堆棧:JVM中的每個線程擁有一個自己的線程棧丽已,線程棧中包含當(dāng)前調(diào)用方...
多線程的優(yōu)點(diǎn) 資源利用率更好(等待IO的時間) 程序設(shè)計在某些情況下更簡單(一個線程對應(yīng)一個任務(wù)) 程序相應(yīng)更快(不用實時去相應(yīng)) 多線程的代價 設(shè)計更復(fù)雜(訪問共享數(shù)據(jù)的機(jī)...
更詳細(xì)的講解和代碼調(diào)試演示過程蚌堵,請參看視頻如何進(jìn)入google,算法面試技能全面提升指南 有一道堆棧相關(guān)算法題,我被面試過兩次以上沛婴,看似其在算法面試中出現(xiàn)的概率很高吼畏,由此值得...
定義 散列表通過算術(shù)操作將鍵轉(zhuǎn)化為數(shù)組的索引來訪問數(shù)組中的鍵值對。散列表的查找算法分兩步: 用散列函數(shù)將被查找的鍵轉(zhuǎn)化為一個數(shù)組的索引 處理碰撞沖突(拉鏈法和線性探測法) 優(yōu)...
平衡查找樹 定義 父節(jié)點(diǎn)的左子樹和右子樹的高度之差不能大于1 2-3查找樹 定義 2-3樹運(yùn)行每個節(jié)點(diǎn)保存1個或者兩個的值嘁灯。對于普通的2節(jié)點(diǎn)(2-node)泻蚊,他保存1個key...