大公司喜歡出的Java多線程面試題,你會多少

大公司喜歡出的Java多線程面試題,你會多少

長沙牛耳教育      2022-04-05 02:14:01     11

大公司喜歡出的Java多線程面試題,你會多少,  編程語言Java的應(yīng)用非常廣,在網(wǎng)頁、手機(jī)系統(tǒng)、軟件、游戲中都可以找到它的身影,崗位需求越來越大?! ≡贘ava面試中,99%

課程價格 請咨詢

上課時段: 授課校區(qū):

詳細(xì)介紹




  編程語言Java的應(yīng)用非常廣,在網(wǎng)頁、手機(jī)系統(tǒng)、軟件、游戲中都可以找到它的身影,崗位需求越來越大。


  在Java面試中,99%以上會遇到與多線程相關(guān)的問題,大多數(shù)待遇豐厚的Java開發(fā)職位對于程序員的要求更是要精通多線程技術(shù)。


  今天,小編分享了騰訊等大公司常考的Java多線程面試題。



  0、進(jìn)程,線程,協(xié)程之間的區(qū)別是什么(這個問題考的是基礎(chǔ)概念,這個一定不要失誤)


  回答:


  簡單來說,進(jìn)程是程序運(yùn)行和資源分配的基本單位,一個程序至少有一個進(jìn)程,而一個進(jìn)程至少有一個線程。進(jìn)程在執(zhí)行過程中擁有獨立的內(nèi)存單元,而多個線程共享內(nèi)存資源,這樣可以減少切換次數(shù),從而效率更高。


  線程是進(jìn)程的一個實體,是cpu調(diào)度和分派的基本單位,是比程序更小的能獨立運(yùn)行的基本單位。同一進(jìn)程中的多個線程之間可以并發(fā)執(zhí)行。


  1、守護(hù)線程和非守護(hù)線程有怎么區(qū)別


  回答:


  程序運(yùn)行完畢,jvm會等待非守護(hù)線程完成后關(guān)閉,但是jvm不會等待守護(hù)線程。守護(hù)線程最典型的例子就是GC線程。


  2、多線程上下文切換是什么?


  回答:


  多線程上下文切換就是指CPU控制權(quán)由一個已經(jīng)正在運(yùn)行的線程切換到另外一個就緒并等待獲取CPU執(zhí)行權(quán)的線程的過程。


  3、有哪兩種創(chuàng)建線程的方式?


  回答:


  兩種方式:通過實現(xiàn)java.lang.Runnable或者通過擴(kuò)展java.lang.Thread類。


  這里要注意,面試官還可能問你這兩種方式更優(yōu)的是哪個?可以這樣答:


  實現(xiàn)Runnable接口可能更優(yōu),原因:a、Java不支持多繼承,因此擴(kuò)展Thread類就代表這個子類不能擴(kuò)展其他類。而實現(xiàn)Runnable接口的類還可能擴(kuò)展另一個類;b、類可能只要求可執(zhí)行即可,因此繼承整個Thread類的開銷過大。


  4、怎么檢測一個線程是否持有對象監(jiān)視器


  Java的Thread類提供了一個holdsLock(Objectobj)方法,只有當(dāng)對象obj的監(jiān)視器被某線程持有時才會返回true。


  5、產(chǎn)生死鎖的條件有哪些?


  回答:


  互斥條件:一個資源只能夠被一個進(jìn)程使用。


  請求與保持條件:請求資源是如果一個進(jìn)程阻塞,則對已獲得的資源保持不放。


  不剝奪條件:進(jìn)程已獲得的資源,在末使用完之前,不能強(qiáng)行剝奪。


  循環(huán)等待條件:若干進(jìn)程之間形成一種頭尾相接的循環(huán)等待資源關(guān)系。


  6、一個線程如果出現(xiàn)了運(yùn)行時異常怎么辦?


  回答:


  如果該異常沒有被捕獲的話,這個線程就停止執(zhí)行了。但是要注意:如果這個線程持有某個對象的監(jiān)視器,則這個對象監(jiān)視器會被立即釋放。


  7、Java使用的線程調(diào)度算法是?


  回答:


  應(yīng)用了搶占式,Java中一個線程用完CPU之后,操作系統(tǒng)會立馬根據(jù)線程優(yōu)先級、線程的饑餓情況等數(shù)據(jù)算出一個總的優(yōu)先級并分配下一個時間片給某個線程執(zhí)行。


  雖然在Java面試過程中被問到與多線程相關(guān)的問題的幾率極高,但是完成一場Java面試一定還需要別的知識儲備。更多java面試題,關(guān)注長沙牛耳教育IT培訓(xùn)官網(wǎng)。



培訓(xùn)啦提醒您:交易時請核實對方資質(zhì),對于過大宣傳或承諾需謹(jǐn)慎!任何要求預(yù)付定金、匯款等方式均存在風(fēng)險,謹(jǐn)防上當(dāng)。