1)現(xiàn)在有三個(gè)線(xiàn)程:T1、T2和T3。如何確保T2在T1完成后執(zhí)行,T3在T2完成后執(zhí)行?
這個(gè)線(xiàn)程問(wèn)題通常在第一階段或電話(huà)面試階段詢(xún)問(wèn),以確定您是否熟悉“連接”方法。此多線(xiàn)程問(wèn)題比較簡(jiǎn)單,可以在聯(lián)接方法中實(shí)現(xiàn)。
2)在java鎖接口優(yōu)勢(shì)比同步塊是什么?您需要實(shí)現(xiàn)一個(gè)高效的高速緩存,允許多個(gè)用戶(hù)讀取,但只允許一個(gè)用戶(hù)寫(xiě)入,以保持其完整性。你是如何實(shí)現(xiàn)的?
在多線(xiàn)程和并發(fā)編程鎖接口最大的優(yōu)勢(shì)是,他們對(duì)閱讀和寫(xiě)作分別提供鎖,可以滿(mǎn)足高性能的數(shù)據(jù)結(jié)構(gòu)和條件阻止你寫(xiě)像ConcurrentHashMap。java線(xiàn)程的面試問(wèn)題越來(lái)越基于面試官的答案變得。我強(qiáng)烈建議您在進(jìn)行多線(xiàn)程訪(fǎng)問(wèn)之前仔細(xì)閱讀鎖,因?yàn)楝F(xiàn)在它被廣泛用于為電子事務(wù)構(gòu)建客戶(hù)端緩存和事務(wù)連接空間。
3)在java的等待和睡眠的方法之間的區(qū)別嗎?
java線(xiàn)程的面試往往是在電話(huà)采訪(fǎng)中問(wèn)。最大的區(qū)別是,當(dāng)?shù)却却龝r(shí),鎖被釋放,睡眠鎖住了鎖。等待通常用于線(xiàn)程間交互,而休眠通常用于暫停執(zhí)行。
4)阻塞隊(duì)列是用java實(shí)現(xiàn)的。
這是一個(gè)比較困難的多線(xiàn)程面試問(wèn)題,它可以達(dá)到很多的目標(biāo)。首先,它可以檢測(cè)應(yīng)試者是否可以與java線(xiàn)程編寫(xiě)程序。其次,它可以檢測(cè)考生對(duì)并發(fā)場(chǎng)景的理解,并在此基礎(chǔ)上提出許多問(wèn)題。如果他用等待()和通知()方法來(lái)實(shí)現(xiàn)阻塞隊(duì)列,你可以請(qǐng)他寫(xiě)了最新的java5并發(fā)。
5)編寫(xiě)的代碼在java解決生產(chǎn)者消費(fèi)者問(wèn)題。
這與上面的問(wèn)題很相似,但這是一個(gè)比較經(jīng)典的問(wèn)題,有時(shí)面試會(huì)問(wèn)以下問(wèn)題。有,當(dāng)然,很多的解決方案如何解決java生產(chǎn)者消費(fèi)者問(wèn)題,我已經(jīng)分享了一個(gè)阻塞隊(duì)列的方法。有時(shí)他們甚至問(wèn)如何做哲學(xué)家的飯。
6)編程程序,用java可能導(dǎo)致死鎖,你將如何解決呢?
這是我最喜歡的java線(xiàn)程面試問(wèn)題,因?yàn)榧词故呛艹R?jiàn)的死鎖問(wèn)題的時(shí)候?qū)懙亩嗑€(xiàn)程的并發(fā)程序,很多考生不能寫(xiě)無(wú)死鎖的代碼(無(wú)死鎖的代碼)。他們?cè)趻暝V灰嬖V他們你有N個(gè)資源和N個(gè)線(xiàn)程,你需要所有的資源來(lái)做一個(gè)操作。為了簡(jiǎn)單地將n替換為2,數(shù)據(jù)越大會(huì)使問(wèn)題看起來(lái)更復(fù)雜。關(guān)于死鎖的更多信息是通過(guò)避免在java死鎖了。
7)原子操作是什么,什么是java的原子操作?
一個(gè)很簡(jiǎn)單的java線(xiàn)程面試問(wèn)題,接下來(lái)的問(wèn)題是,你需要同步一個(gè)原子操作。
8)在java中揮發(fā)性的關(guān)鍵的作用是什么?怎么用它?從同步方法在java的區(qū)別是什么?
由于java5和java內(nèi)存模式發(fā)生了改變,基于關(guān)鍵字volatile的線(xiàn)程問(wèn)題越來(lái)越受關(guān)注。你應(yīng)該準(zhǔn)備回答如何能確保volatile變量的可見(jiàn)性,sequentility,在并行環(huán)境的一致性。
9)競(jìng)爭(zhēng)的條件是什么?你如何找到并解決競(jìng)爭(zhēng)?
這是在多線(xiàn)程面試的高級(jí)階段出現(xiàn)的問(wèn)題。大多數(shù)面試官都在問(wèn)你最近遇到的競(jìng)爭(zhēng)環(huán)境,以及你如何解決這些問(wèn)題。有時(shí)候他們會(huì)編寫(xiě)簡(jiǎn)單的代碼,然后讓你發(fā)現(xiàn)代碼的競(jìng)爭(zhēng)條件。你可以參考我之前的文章對(duì)java的競(jìng)爭(zhēng)條件。在我看來(lái),這是一個(gè)最好的java線(xiàn)程面試問(wèn)題。它可以檢測(cè)該候選人的經(jīng)驗(yàn)來(lái)解決競(jìng)爭(zhēng)條件完全相同,或?qū)懽鳎@是免費(fèi)的數(shù)據(jù)種族或種族代碼,”“這是最好的書(shū)“java”并行的實(shí)踐。
10)如何使用線(xiàn)程轉(zhuǎn)儲(chǔ)?你將如何分析線(xiàn)程轉(zhuǎn)儲(chǔ)?
在UNIX中,您可以使用殺-3,線(xiàn)程轉(zhuǎn)儲(chǔ)將打印日志,您可以在Windows中使用“Ctrl+中斷”。這是一個(gè)非常簡(jiǎn)單和專(zhuān)業(yè)的線(xiàn)程面試問(wèn)題,但如果他問(wèn)你如何分析它,這將是棘手的。
以上就是深圳達(dá)內(nèi)教育Java培訓(xùn)機(jī)構(gòu)小編介紹的“頂級(jí)Java多線(xiàn)程面試題及答案”的內(nèi)容,希望對(duì)大家有幫助,如有疑問(wèn),請(qǐng)?jiān)诰€(xiàn)咨詢(xún),有專(zhuān)業(yè)老師隨時(shí)為你服務(wù)。