看似簡單的併發面試題,卻暴露出了你技術的種種漏洞
相信不用我說,大家也都知道掌握併發程式設計對於一個 Java 程式設計師的重要性。但相對於其他 Java 基礎知識點來說,併發程式設計更加抽象,涉及到的知識點很多很零散,實際使用也更加麻煩。以至於很多人學完之後,根本不知道自己學了什麼。
我在面試的時候,經常會問這些問題:
執行緒池相關
問:你講講執行緒池的實現原理。
聽到這個問題,小部分同學會很坦白的說,我平時用過執行緒池,但是沒有了解過內部是怎麼實現的。偶爾也會有同學反懟,我會用不就行了麼,為啥要知道咋實現!
碰到這樣的同學,我只能說,嗯,你說的對。
我希望聽到的答案是,把每個引數的作用都說一遍,最好可以在紙上更加直觀的描述出來,各個引數在設定的時候需要注意什麼問題。
有時候,有些同學語言組織的不太好,描述的時候有點含糊不清,為了能夠確定他了解的是否正確,我會直接提供一組執行緒池引數
問:現在設定 coreSize=5,maxSize=10,blockQueueSize=10,依次提交 6 個比較耗時的任務,執行緒池是如何執行的?
如果這樣還描述不清楚,那真的要 pass 了。
繼續問:你在什麼場景下使用過執行緒池,主要解決什麼問題?
面試者:巴拉巴拉說一堆 &%^($#@!
繼續問:那如果我給你一個場景,支付場景,A介面需要呼叫微信支付介面完成支付任務,呼叫微信支付介面被放在一個執行緒池中執行,假如微信介面的超時時間為2s,A 介面的 qps 大概是 100,如何設定執行緒池引數比較合理?
繼續問:如果涉及到有突發流量的場景,又該如何設定?
併發程式設計常見面試問題
舉幾個簡單的問題,大家自測一下,看看如果自己面試中遇到這些問題,能不能回答上來。比如
1. 悲觀鎖和樂觀鎖有什麼區別
2. 一不小心就死鎖了,怎麼辦?
3. 多執行緒同步和互斥有哪幾種實現方法?
4. 執行緒池解決什麼問題、執行緒池的原理、執行緒池使用時的注意事項
5. 如何避免重複建立執行緒?
6. 多執行緒同步和互斥有哪幾種實現方法?
7. ReentranLock 原始碼,設計原理,整體過程
8. 如何批量執行非同步任務?
學習好高併發相關知識,不光是為了能在面試中不被面試官難到,更是為了能滿足工作的需求。我們常常被要求開發一個高併發的系統,而掌握併發程式設計正是其中的關鍵。
併發程式設計全景圖
那我們應該怎麼學習併發程式設計?是不是一上來就去看 Java SDK 的併發包?然後死記硬揹他們的使用場景?有沒有一張“全景圖”?
說實話,時至今日也還沒有一張普遍認可的“併發程式設計”全景圖,但下面這張圖,看到的時候卻是讓我眼前一亮,是由資深架構師王寶令製成,從三個核心問題:分工、互斥、協作,全面且系統地涵蓋了Java 併發程式設計的技術難點。
另外,王寶令在極客時間開設了《Java 併發程式設計實戰》專欄,絕對值得一看。
正如上面這張思維導圖所示,寶令在專欄中,會站在理論、模型的角度講解 Java 併發,讓你融匯貫通,形成全面系統的併發程式設計知識體系。最終可以得心應手地解決各種併發難題,同時將這些知識用於其他程式語言。
除了涉及 12 個Java 併發工具類以及 9 種最常見的併發設計模式,相信專欄中的四大經典併發程式設計實戰案例解析可以讓你即學即用,讓你從案例中根本性地瞭解如何處理併發問題。
現在這個專欄優惠最後 1 天了,優惠價 ¥68(原價 ¥99),就基本兩頓外賣的錢。
掃上圖二維碼訂閱,一共 45 講,落地且全面
一篇一塊多錢,不能更划算
這個專欄,上線不到10天,已經有近 7000人訂閱了,截了點評價給你們作為參考。
這個專欄裡有部分腦圖,分享給大家,建議收藏:
大廠面試肯定用的上 :)
相關文章
- 無人駕駛技術看似一片藍海:背後卻將面臨各種阻礙
- 簡單的面試總結---內含面試題目 | 掘金技術徵文面試題
- 看似簡單的hashCode和equals面試題,竟然有這麼多坑!面試題
- 「架構技術專題」9種高效能高可用高併發的技術架構(5)架構
- 九種高效能可用高併發的技術架構架構
- iOS面試問答集錦,從容應對各種面試技術難題!iOS面試
- 架構面試題—大併發量的訂單的解析架構面試題
- 最近面試遇到的種種應聘者,你是這樣的嗎?面試
- Google 面試題 | 種花Go面試題
- 簡單面試題面試題
- 面試題裡的那些各種手寫面試題
- 面試題:水平垂直居中的17種方法面試題
- 【併發技術01】傳統執行緒技術中建立執行緒的兩種方式執行緒
- Java併發面試題Java面試題
- 專訪劉岐:直播技術看似門檻低,裡頭的門道卻不少
- 【搞定 Java 併發面試】面試最常問的 Java 併發基礎常見面試題總結!Java面試題
- 45歲程式設計師,精通各種技術體系,卻連個面試機會都沒有…程式設計師面試
- 四種ABAP單元測試隔離(test isolation)技術
- 面試官:你能回答這兩個簡單的問題嗎面試
- 技術面試題分享:含答案的10道Jvm面試專題面試題JVM
- 面試常見的非技術問題面試
- 技術分享 | 一種針對PHP物件注入漏洞的新型利用方法PHP物件
- Java 併發面試題解Java面試題
- RabbitMQ/高併發面試題MQ面試題
- 面試中一個暴露能力等級的問題面試
- 聊聊一道簡單的javascript面試題JavaScript面試題
- 面試中HashMap連結串列成環的問題你答出了嗎面試HashMap
- 十二種特徵工程相關技術簡介特徵工程
- Python單例的一種簡單寫法Python單例
- Web前端十種常用的技術Web前端
- Java併發面試題精選Java面試題
- 實現單例模式的 9 種方法,你知道幾種?單例模式
- 一個考併發的面試題,怎麼答??面試題
- 介面請求重試的8種方法,你用哪種?
- SQLite 併發的四種處理方式SQLite
- 總結的一些簡單面試題目面試題
- 滲透測試中最常見的9種漏洞!
- 怎樣回答技術面試題?面試題