這都不知道就不要去大公司面試了,丟人
java并發面試題(一)基礎
本文整理了常見的Java并發面試題,希望對大家面試有所幫助,歡迎大家互相交流。
多線程
java中有幾種方法可以實現一個線程?
如何停止一個正在運行的線程?
notify()和notifyAll()有什么區別?
sleep()和 wait()有什么區別?
什么是Daemon線程?它有什么意義?
java如何實現多線程之間的通訊和協作?
鎖
什么是可重入鎖(ReentrantLock)?
當一個線程進入某個對象的一個synchronized的實例方法后,其它線程是否可進入此對象的其它方法?
synchronized和java.util.concurrent.locks.Lock的異同?
樂觀鎖和悲觀鎖的理解及如何實現,有哪些實現方式?
并發框架
SynchronizedMap和ConcurrentHashMap有什么區別?
CopyOnWriteArrayList可以用于什么應用場景?
線程安全
什么叫線程安全?servlet是線程安全嗎?
同步有幾種實現方法?
volatile有什么用?能否用一句話說明下volatile的應用場景?
請說明下java的內存模型及其工作流程。
為什么代碼會重排序?
原創文章,轉載請注明: 轉載自并發編程網 – ifeve.com本文鏈接地址: java并發面試題(一)基礎
http://ifeve.com/javaconcurrency-interview-questions-base/
java并發面試題(二)實戰
本文列出了在工作中會用到的并發編程的實戰問題,大家可以一起交流下,在回復中給出答案。
并發容器和框架
如何讓一段程序并發的執行,并最終匯總結果?
如何合理的配置java線程池?如CPU密集型的任務,基本線程池應該配置多大?IO密集型的任務,基本線程池應該配置多大?用有界隊列好還是無界隊列好?任務非常多的時候,使用什么阻塞隊列能獲取最好的吞吐量?
如何使用阻塞隊列實現一個生產者和消費者模型?請寫代碼。
多讀少寫的場景應該使用哪個并發容器,為什么使用它?比如你做了一個搜索引擎,搜索引擎每次搜索前需要判斷搜索關鍵詞是否在黑名單里,黑名單每天更新一次。
Java中的鎖
如何實現樂觀鎖(CAS)?如何避免ABA問題?
讀寫鎖可以用于什么應用場景?
什么時候應該使用可重入鎖?
什么場景下可以使用volatile替換synchronized?
并發工具
如何實現一個流控程序,用于控制請求的調用次數?
答案
可以閱讀以下參考資料,知道答案后可以在回復中交流
Java線程池的分析和使用 Java線程池(第二題)
原子操作的實現原理 (鎖 第一題)
Java中的讀寫鎖(鎖 第二題)
如何設計客戶端流控程序 (并發工具 第一題)
待續
原創文章,轉載請注明: 轉載自并發編程網 – ifeve.com本文鏈接地址: java并發面試題(二)實戰
http://ifeve.com/javaconcurrency-interview-questions-combat/