聊聊面試中關(guān)于并發(fā)問(wèn)題的應(yīng)對(duì)方案

主題

又到面試季了,從群里羊瘩,看到許多同學(xué)分享了自己的面試題目俩檬,我也抽空在網(wǎng)上搜索了一些許多公司使用的面試題,目前校招和社招的面試題基本都集中在幾個(gè)大方向上纲熏,主要是:Java基礎(chǔ)妆丘、并發(fā)、JVM局劲、算法勺拣、數(shù)據(jù)庫(kù)、一些框架鱼填、分布式集群 等药有。這里呢,單獨(dú)就面試中的【并發(fā)】問(wèn)題的準(zhǔn)備和學(xué)習(xí)發(fā)表一下個(gè)人的見(jiàn)解苹丸。

現(xiàn)狀

關(guān)于對(duì)并發(fā)的學(xué)習(xí)和理解愤惰,通過(guò)大家在課程群里的反饋,總結(jié)一下赘理,主要包含以下幾種:

完全不知道并發(fā)的存在

知道并發(fā)要學(xué)宦言,但是不知道該學(xué)習(xí)什么

知道并發(fā)重要,自己買(mǎi)相關(guān)書(shū)籍學(xué)感憾,但是看完了還是懵懵懂懂

知道并發(fā)重要蜡励,自己查資料學(xué)了一些,許多都學(xué)會(huì)了阻桅,但總能發(fā)現(xiàn)不會(huì)的凉倚,不知道并發(fā)到底都要學(xué)什么

已經(jīng)完成進(jìn)階,并發(fā)的問(wèn)題了然于胸嫂沉,這樣的小伙伴目前很少

首先說(shuō)一下稽寒,為什么Java面試要考并發(fā),而且并發(fā)相關(guān)的題目占比又是那么的高趟章。對(duì)并發(fā)有一定了解的同學(xué)杏糙,應(yīng)該都知道慎王,大家平時(shí) 只要做Java項(xiàng)目就會(huì)涉及到并發(fā) ,個(gè)別同學(xué)說(shuō)自己從沒(méi)接觸過(guò)并發(fā)宏侍,這只是個(gè)人還沒(méi)意識(shí)到而已赖淤。當(dāng)你定義好一個(gè)可以調(diào)用的接口時(shí),這時(shí)其實(shí)就已經(jīng)和并發(fā)有關(guān)系了谅河,因?yàn)槿魏我粋€(gè)接口都可能同時(shí)被請(qǐng)求多次咱旱。當(dāng)你在項(xiàng)目中已經(jīng)可以熟練的使用synchronized、volatile绷耍、static吐限、final這些基本的Java關(guān)鍵字時(shí),其實(shí)你對(duì)并發(fā)已經(jīng)有一些基礎(chǔ)了褂始。大家總說(shuō)的:面試造火箭诸典、入職擰螺絲,其實(shí)有一部分原因也是因?yàn)槟氵€沒(méi)意識(shí)到面試考的這些東西其實(shí)一直就伴隨著你的日常開(kāi)發(fā)崎苗。

我不自量力的去列一下并發(fā)涉及到的關(guān)鍵字狐粱、類(lèi)及可以考察的知識(shí)點(diǎn):CPU緩存、Java內(nèi)存模型JMM益缠、atomic脑奠、AtomicInteger基公、AtomicLong幅慌、LongAdder、AtomicReference轰豆、AtomicBoolean胰伍、CAS原理、Unsafe酸休、synchronized骂租、volatile、final斑司、static渗饮、ThreadLocal、AQS宿刮、J.U.C互站、CountDownLatch、Semaphore僵缺、CyclicBarrier胡桃、ReentrantLock、ReentrantReadWriteLock磕潮、StampLock翠胰、Condition容贝、FutureTask、Fork/Join之景、BlockingQueue斤富、ThreadPoolExecutor、ExecutorService锻狗、Thread茂缚、Runnable、Future屋谭、Callable脚囊、HashMap、 HashTable桐磁、ConcurrentHashMap悔耘、CopyOnWriteArrayList、CopyOnWriteArraySet我擂、RateLimiter衬以、SimpleDateFormat、StringBuffer校摩、StringBuilder看峻、ArrayList、Vector衙吩、HashSet互妓、ConcurrentSkipListSet、Collections.synchronizedXXX坤塞、Guava Cache冯勉、Redis ... 我嘗試去寫(xiě)出腦海里與并發(fā)有關(guān)的類(lèi)和名詞,我發(fā)現(xiàn)根本寫(xiě)摹芙!不灼狰!完!是的浮禾,并發(fā)的知識(shí)太多了交胚,以致于很難給出一個(gè)完整的囊括。

因此呢盈电,如果你盲目的一個(gè)知識(shí)點(diǎn)一個(gè)知識(shí)的去學(xué)蝴簇,你就會(huì)發(fā)現(xiàn)你怎么都學(xué)不完,也很難在腦海里形成一個(gè)完整的知識(shí)體系挣轨,帶來(lái)的最直接結(jié)果就是军熏,你每次去面試時(shí)都要去把并發(fā)相關(guān)的再過(guò)一下,生怕自己被問(wèn)到還沒(méi)接觸的卷扮。這時(shí)候荡澎,你要做的就是均践,先要在腦海里有一個(gè)完整的并發(fā)知識(shí)體系,然后根據(jù)這個(gè)體系去不斷完善這個(gè)體系里每個(gè)模塊的細(xì)節(jié)摩幔。想要詳細(xì)了解并發(fā)編程知識(shí)體系的可以加群:650385180彤委,以下的高清腦圖已經(jīng)放在群里面。

并發(fā)

關(guān)于并發(fā)的學(xué)習(xí)或衡,可以從JDK提供的并發(fā)包為核心開(kāi)始焦影,許多其他的類(lèi)和封裝都是對(duì)其進(jìn)行擴(kuò)展或者補(bǔ)充,我們來(lái)看一下Java并發(fā)包(java.util.concurrent包封断,簡(jiǎn)稱(chēng)J.U.C)的構(gòu)成:

J.U.C核心由5大塊組成:atomic包斯辰、locks包、collections包坡疼、tools包(AQS)彬呻、executor包(線程池)。大家平時(shí)遇到許多并發(fā)相關(guān)的類(lèi)都可以從這里找到柄瑰。但是呢闸氮,要想系統(tǒng)的掌握并發(fā),不能是打開(kāi)J.U.C這個(gè)包教沾,挨個(gè)類(lèi)去看蒲跨,這里只是提供了五大塊,代表核心的五個(gè)方向授翻。要想系統(tǒng)的學(xué)習(xí)并發(fā)或悲,可以加群650385180,并且還需要從并發(fā)的角度學(xué)習(xí)藏姐,過(guò)程中覆蓋J.U.C的這些知識(shí)隆箩。這里我直接給出并發(fā)的學(xué)習(xí)步驟圖(包含對(duì)當(dāng)前面試常見(jiàn)考點(diǎn)的覆蓋,比如對(duì)HashMap和ConcurrentHashMap的源碼分析):

這個(gè)之前呢羔杨,還需要對(duì)Java并發(fā)的基礎(chǔ)進(jìn)行細(xì)致的學(xué)習(xí),比如CPU緩存和Java內(nèi)存模型(JMM)杨蛋,許多關(guān)鍵字比如volatile兜材、synchronized等的特性都是在JMM里規(guī)定好的。

高并發(fā)

我們這篇手記題目里提到的并發(fā)其實(shí)包含兩部分:并發(fā)和高并發(fā)逞力。手記講到現(xiàn)在曙寡,其實(shí)我們講的都是兩部分里的第一部分:并發(fā)。那么并發(fā)和高并發(fā)到底有什么區(qū)別呢寇荧?許多小伙伴對(duì)這兩個(gè)概念都是模糊的举庶,我簡(jiǎn)單做一下區(qū)分。

當(dāng)我們說(shuō)多線程并發(fā)時(shí)揩抡,其實(shí)我們更多的是討論多個(gè)線程操作了相同的資源户侥,這時(shí)我們討論點(diǎn)更多的是落在保證線程安全以及合理分配和使用資源上镀琉。而高并發(fā)主要指系統(tǒng)運(yùn)行過(guò)程中遇到“短時(shí)間內(nèi)遇到大量操作請(qǐng)求”的情況,主要發(fā)生在系統(tǒng)集中收到大量請(qǐng)求(例如:12306的搶票情況蕊唐;天貓雙十一活動(dòng))屋摔。當(dāng)我們說(shuō)高并發(fā)時(shí),我們談的是是如何提高現(xiàn)有程序的性能替梨,更多的是對(duì)高并發(fā)場(chǎng)景的一些解決方案钓试,思路啦、手段等等副瀑。如果高并發(fā)處理不好弓熏,不僅僅降低了用戶的體驗(yàn)度(請(qǐng)求響應(yīng)時(shí)間過(guò)長(zhǎng)),同時(shí)可能導(dǎo)致系統(tǒng)宕機(jī)糠睡,嚴(yán)重的甚至導(dǎo)致OOM異常硝烂,系統(tǒng)停止工作等。這里呢铜幽,我直接給出高并發(fā)場(chǎng)景通常都會(huì)考慮的一些解決思路和手段:

結(jié)尾

如何有效的準(zhǔn)備面試中并發(fā)類(lèi)問(wèn)題滞谢,我已經(jīng)給出我的理解。希望這些能幫大家在腦海里建立起大致的并發(fā)知識(shí)體系除抛,然后根據(jù)這個(gè)知識(shí)體系有針對(duì)性的的去準(zhǔn)備面試狮杨。預(yù)祝大家能高分通過(guò)面試,拿到高薪到忽!

當(dāng)然橄教,光提概念光看圖是沒(méi)用的,還需要大家根據(jù)這些提綱去實(shí)際學(xué)習(xí)相關(guān)的知識(shí)點(diǎn)和類(lèi)才行喘漏。我已經(jīng)準(zhǔn)備好了這些實(shí)際知識(shí)點(diǎn)學(xué)習(xí)的流程护蝶,相信聰明的你已經(jīng)知道該怎么辦了~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市翩迈,隨后出現(xiàn)的幾起案子持灰,更是在濱河造成了極大的恐慌,老刑警劉巖负饲,帶你破解...
    沈念sama閱讀 216,651評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件堤魁,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡返十,警方通過(guò)查閱死者的電腦和手機(jī)妥泉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)洞坑,“玉大人盲链,你說(shuō)我怎么就攤上這事。” “怎么了刽沾?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,931評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵本慕,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我悠轩,道長(zhǎng)间狂,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,218評(píng)論 1 292
  • 正文 為了忘掉前任火架,我火速辦了婚禮鉴象,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘何鸡。我一直安慰自己纺弊,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布骡男。 她就那樣靜靜地躺著淆游,像睡著了一般。 火紅的嫁衣襯著肌膚如雪隔盛。 梳的紋絲不亂的頭發(fā)上犹菱,一...
    開(kāi)封第一講書(shū)人閱讀 51,198評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音吮炕,去河邊找鬼腊脱。 笑死,一個(gè)胖子當(dāng)著我的面吹牛龙亲,可吹牛的內(nèi)容都是我干的陕凹。 我是一名探鬼主播,決...
    沈念sama閱讀 40,084評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼鳄炉,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼杜耙!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起拂盯,我...
    開(kāi)封第一講書(shū)人閱讀 38,926評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤佑女,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后磕仅,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體珊豹,經(jīng)...
    沈念sama閱讀 45,341評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評(píng)論 2 333
  • 正文 我和宋清朗相戀三年榕订,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蜕便。...
    茶點(diǎn)故事閱讀 39,731評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡劫恒,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情两嘴,我是刑警寧澤丛楚,帶...
    沈念sama閱讀 35,430評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站憔辫,受9級(jí)特大地震影響趣些,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜贰您,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評(píng)論 3 326
  • 文/蒙蒙 一坏平、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧锦亦,春花似錦舶替、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,676評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至抛蚁,卻和暖如春陈醒,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背瞧甩。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,829評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工钉跷, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人亲配。 一個(gè)月前我還...
    沈念sama閱讀 47,743評(píng)論 2 368
  • 正文 我出身青樓尘应,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親吼虎。 傳聞我的和親對(duì)象是個(gè)殘疾皇子犬钢,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容