閱讀482 返回首頁    go 阿裏雲 go 技術社區[雲棲]


java並發麵試題(二)實戰

本文列出了在工作中會用到的並發編程的實戰問題,大家可以一起交流下,在回複中給出答案。

並發容器和框架

  1. 如何讓一段程序並發的執行,並最終匯總結果?
  2. 如何合理的配置java線程池?如CPU密集型的任務,基本線程池應該配置多大?IO密集型的任務,基本線程池應該配置多大?用有界隊列好還是無界隊列好?任務非常多的時候,使用什麼阻塞隊列能獲取最好的吞吐量?
  3. 如何使用阻塞隊列實現一個生產者和消費者模型?請寫代碼。
  4. 多讀少寫的場景應該使用哪個並發容器,為什麼使用它?比如你做了一個搜索引擎,搜索引擎每次搜索前需要判斷搜索關鍵詞是否在黑名單裏,黑名單每天更新一次。

Java中的鎖

  1. 如何實現樂觀鎖(CAS)?如何避免ABA問題?
  2. 讀寫鎖可以用於什麼應用場景?
  3. 什麼時候應該使用可重入鎖?
  4. 什麼場景下可以使用volatile替換synchronized?

並發工具

  1. 如何實現一個流控程序,用於控製請求的調用次數?

答案

可以閱讀以下參考資料,知道答案後可以在回複中交流

文章轉自 並發編程網-ifeve.com

最後更新:2017-05-22 20:04:18

  上一篇:go  深入理解Java內存模型(六)——final
  下一篇:go  線程通信