并發編程
多執行緒類的使用
- java執行緒同步有哪些方法、各自的優缺點
- synchronized 和ReentrantLock區別,可重入鎖是什么?
- threadlocal有什么用
- Java中創建執行緒有幾種方式?分別是? 當主執行緒執行結束后,子執行緒還會繼續執行下去嗎?
- JUC中有哪些常用的集合?(專案中用到的)
- CopyOnWriteArrayList的實作原理?主要應用什么場景下?優缺點分別是?
- HashMap不是執行緒安全的,在高并發環境中做插入會出現什么情況?為什么?
- jdk1.8以前ConcurrentHashMap是如何實作執行緒安全的?jdk1.8以后呢?(1.8synchronized加CAS,并引入了紅黑樹)
- 當呼叫ConcurrentHashMap的size方法時,有元素并發插入,ConcurrentHashMap是怎么處理的?
- synchronized和java.util.concurrent.locks.Lock的比較, AtomicInteger原理,為什么要用CAS而不是synchronized? 銀行的后端如果出現多人想一個賬戶大錢的情況,會碰到什么問題?
- 什么是CAS操作,如何實作一個自定義鎖
- Synchronized的實作,鎖的升級程序,
- AQS鎖了解么?
- wait()、notify必須在什么情況下使用
- 執行緒、行程、協程的關系,
- 對volatile的理解
- 詳細的說一下concurrentHashMap put流程
- 你是如何理解同步/異步,并發/并行的概念的
- 那談談Lock介面的API以及其實作類相關的了解?
- 那么ReentrantLock中的lock和unlock之間的同步如何進行執行緒間的通信?
- Semaphore類的了解?
- JUC包下的計數鎖?CountDownLatch?
- CyclicBarrier的理解?
- ReadWriteLock與ReentrantReadWriteLock的理解和區別?
- 你還了解ReentrantReadWriteLock哪些特性?
- ReentrantLock如何實作公平和非公平鎖是如何實作? CountDownLatch和CyclicBarrier的區別?各自適用于什么場景?
- 樂觀鎖和悲觀鎖的區別? 如何實作一個樂觀鎖?
- AQS是如何喚醒下一個執行緒的?
- ConcurrentHashMap是如何讓多執行緒同時參與擴容?get需要加鎖么,為什么?
- Disruptor框架的用法,實作
- Future的異步呼叫程序是咋樣的?Future超時的情況?無限遞回會造成jvm記憶體的什么問題?
- Java8之后的ConcurrentHashMap為什么舍棄分段鎖?
- 執行緒池一整套(實作類及對應的阻塞佇列、拒絕策略、具體引數、ScheduledThreadPool有三種構造方法,分別代表什么含義?)
- synchronized分別修飾在實體方法上和靜態方法上,多執行緒并發時是否會競爭鎖?synchronized修飾在方法上和代碼塊上有什么區別,底層是怎么實作的?
- 并發編程中的生產者消費者模式代碼,[最簡單的方式就是使用wait和notify去阻塞喚醒,當然還可以使用可重入鎖(ReentrantLock),使用鎖計數器(CountdownLatch)等等]
- 為什么要用讀寫鎖而不用synchronized這種同步鎖
- 如何實作控制執行緒在某段時間內完成,不完成就撤銷,
- 參照ConcurrentHashMap,如果在多執行緒場景下使用HashMap,有什么手段提高效率又保證執行緒安全嗎?
- 對Java記憶體模型的理解,以及其在并發中的應用;指令重排序,記憶體柵欄等
- Java 有什么鎖型別?
- 并發容器有哪些,并發容器和同步容器的區別?
- CLH同步佇列是怎么實作非公平和公平的?
- HashMap在高并發下如果沒有處理執行緒安全會有怎樣的安全隱患,具體表現是什么,
- Lock介面有哪些實作類,使用場景是什么,
- 可重入鎖的用處及實作原理,寫時復制的程序,讀寫鎖,分段鎖(ConcurrentHashMap中的segment)
- CountDown有了解過嗎?CountDown和CycliBarrier的區別是是什么?在使用上有啥區別?
- volatile從指令重排序,記憶體屏障,聊到總線風暴
- 問了父子執行緒怎么共享資料
- List是非執行緒安全的,你如何把他變成執行緒安全的?
- synchronized可否在運行當前執行緒時運行其它執行緒
- 什么叫守護執行緒,用什么方法實作守護執行緒?如何停止一個執行緒?
- 并發編程問的很細,多個執行緒達到同一個狀態然后再一起執行,達到某一個狀態之后再繼續并發執行,這種怎么實作?
- 如何實作控制執行緒在某段時間內完成,不完成就撤銷
- 讀寫鎖中加讀鎖后如何避免寫執行緒餓死
- 執行緒池的一些原理,鎖的機制升降級
- 問自旋鎖實作的方式是什么 問指標指向的地址是虛擬地址還是物理地址, 問頁表置換的演算法有哪些,以及現如今哪種演算法比較高效, 問缺頁例外置換的程序, 如果一個執行緒修改一個資料,但這時候需要把當前頁表置換出去,作業系統如何處理,
- 行程與執行緒的區別,怎么根據硬體確定你最大創建的執行緒數(執行緒池需要考慮)
執行緒池
- 執行緒池 什么時候到達最大執行緒數 到達最大執行緒后繼續提交的表現 用過哪些鎖
- 執行緒池有哪些核心引數?簡單描述下執行緒池的原理?
- 創建執行緒池的方式?
- 執行緒池執行緒的提交方式和優缺點,
- 如果我們在執行緒池中使用無界佇列會造成什么影響呢?
- 多個核心執行緒去take阻塞佇列中執行緒,誰能拿到了?
- 執行緒池怎么實作復用執行緒的
- JDK中偏向鎖、自旋鎖、輕量級鎖、重量級鎖的區別? JDK鎖自旋的自旋閾值了解嗎?如何調整自旋次數?
- 你們系統中下單的時候為什么要用執行緒池?可以用其他的實作方案嗎?
多執行緒的擴展
-
分布式鎖zookeeper的使用場景------ 實作分布式鎖的方式----------redis分布式鎖和zookeeper分布式鎖
-
你會如何處理高并發場景,例如商城秒殺?
-
資料庫的并發策略
-
高并發時如何限流
-
場景模擬:假設有一個場景,系統需要某個特定時間內回應用戶請求,比如說100ms內完成用戶請求,但是在最高峰的時候每單位時間幾百萬的用戶請求,也就是高并發,但我必須要實作系統回應及時,而且高可用,假如你是架構師,你該如何架構這個系統,聊聊你的方案,
-
執行緒編程題: 寫兩個執行緒,一個往陣列加資料,一個往陣列減資料,要求資料不會越界,其實就是生產消費者
-
秒殺系統如何設計?
-
如果處理并發時候出現死鎖?
歡迎搜索關注本人與朋友共同開發的微信面經小程式【大廠面試助手】和公眾號【微瞰技術】


轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/188301.html
標籤:Java
下一篇:如何判斷陣列的某一位物件被填充了
