Java面试中,一些常见的有关多线程问题!
面試作為入職的第一道門檻,其重要性不言而喻。對于從事IT的很多工作人員而言,對面試往往信心不足,畢竟在真實面試中,會遇到很多技術問題,萬一哪塊技術點不熟,就會與心儀的offer失之交臂。接下來,小千以Java面試為例,為大家精心總結了一些常見的有關多線程問題,希望大家能夠對這些知識點有所準備。
一、現(xiàn)在有線程 T1、T2 和 T3。你如何確保 T2 線程在 T1 之后執(zhí)行,并且 T3 線程在 T2 之后執(zhí)行?
有關線程面試題通常在第一輪面試或電話面試時會被問到,這道多線程問題為了測試面試者是否熟悉join方法的概念。答案也非常簡單:可以用Thread類的join 方法實現(xiàn)這一效果。
二、Java中新的Lock接口相對于同步代碼塊有什么優(yōu)勢?如果讓你實現(xiàn)一個高性能緩存,支持并發(fā)讀取和單一寫入,你如何保證數(shù)據(jù)完整性?
多線程和并發(fā)編程中使用lock接口的最大優(yōu)勢是它為讀和寫提供兩個單獨的鎖,可以讓你構建高性能數(shù)據(jù)結構,比如Concurrent HashMap和條件阻塞。這道Java 線程面試題越來越多見,而且隨后的面試題都基于面試者對這道題的回答。 強烈建議在任何Java多線程面試前都要多看看有關鎖的知識。
三、Java中wait和sleep方法有什么區(qū)別?
兩者主要的區(qū)別就是等待釋放鎖和監(jiān)視器。sleep方法在等待時不會釋放任何鎖或監(jiān)視器。wait方法多用于線程間通信,而sleep只是在執(zhí)行時暫停。
四、如何在Java中實現(xiàn)一個阻塞隊列?
這道題目考察了面試者是否真正寫過Java多線程代碼,考察了面試者對并發(fā)場景的理解。并且可以根據(jù)面試者的代碼問很多后續(xù)問題,如果他用wait()和notify()方法成功實現(xiàn)了阻塞隊列,可以讓他用Java5的并發(fā)類重新實現(xiàn)一次。
五、如何在Java中編寫代碼解決生產者消費者問題?
這個問題在工作中很典型,但有時面試官會問這類問題,比如“在Java 中如何解決生產者消費者問題?”其實,有很多解決方式。其中Java中BlockingQueue即可解決。
六、在Java中如何解決死鎖?
死鎖在多線程并發(fā)編程中十分常見,只需要問他們如果有N個資源和N個線程去執(zhí)行某個操作,然后請求所有資源。
七、什么是原子操作?Java 中有哪些原子操作?
這是個簡單的Java線程面試題。另一個緊隨其后的問題將是:你需要同步原子操作嗎?
以上是最常問的Java線程面試題,不僅有助于大家面試,掌握相關問題的答案后,還可為大家打開多線程概念的大門。
本文來自千鋒教育,轉載請注明出處。
總結
以上是生活随笔為你收集整理的Java面试中,一些常见的有关多线程问题!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java技术分享之函数式编程
- 下一篇: socket编程中常见的概念问题!