天天看點

java并發面試題(二)實戰

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

如何讓一段程式并發的執行,并最終彙總結果?

如何合理的配置java線程池?如cpu密集型的任務,基本線程池應該配置多大?io密集型的任務,基本線程池應該配置多大?用有界隊列好還是無界隊列好?任務非常多的時候,使用什麼阻塞隊列能擷取最好的吞吐量?

如何使用阻塞隊列實作一個生産者和消費者模型?請寫代碼。

多讀少寫的場景應該使用哪個并發容器,為什麼使用它?比如你做了一個搜尋引擎,搜尋引擎每次搜尋前需要判斷搜尋關鍵詞是否在黑名單裡,黑名單每天更新一次。

如何實作樂觀鎖(cas)?如何避免aba問題?

讀寫鎖可以用于什麼應用場景?

什麼時候應該使用可重入鎖?

什麼場景下可以使用volatile替換synchronized?

如何實作一個流控程式,用于控制請求的調用次數?

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

待續