java并發(fā)高頻面試題及答案_第1頁(yè)
java并發(fā)高頻面試題及答案_第2頁(yè)
java并發(fā)高頻面試題及答案_第3頁(yè)
java并發(fā)高頻面試題及答案_第4頁(yè)
java并發(fā)高頻面試題及答案_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

java并發(fā)高頻面試題及答案

一、單項(xiàng)選擇題(每題2分,共10題)1.在Java中,以下哪個(gè)關(guān)鍵字用于創(chuàng)建線(xiàn)程?A.runB.startC.ThreadD.Runnable答案:C2.以下哪個(gè)方法可以讓當(dāng)前線(xiàn)程暫停執(zhí)行一段時(shí)間?A.sleep()B.wait()C.notify()D.join()答案:A3.關(guān)于Java中的線(xiàn)程優(yōu)先級(jí),以下說(shuō)法正確的是?A.優(yōu)先級(jí)高的線(xiàn)程一定會(huì)先執(zhí)行B.優(yōu)先級(jí)范圍是0-10C.線(xiàn)程默認(rèn)優(yōu)先級(jí)是5D.優(yōu)先級(jí)低的線(xiàn)程永遠(yuǎn)不會(huì)執(zhí)行答案:C4.在Java并發(fā)編程中,以下哪個(gè)類(lèi)用于線(xiàn)程安全的集合?A.ArrayListB.VectorC.LinkedListD.HashSet答案:B5.以下關(guān)于Java中synchronized關(guān)鍵字的說(shuō)法,錯(cuò)誤的是?A.可以修飾方法B.可以修飾代碼塊C.是一種互斥鎖D.只能用于靜態(tài)方法答案:D6.在Java多線(xiàn)程中,以下哪個(gè)方法用于等待線(xiàn)程結(jié)束?A.yield()B.wait()C.notify()D.join()答案:D7.以下哪個(gè)接口用于定義Java中的線(xiàn)程任務(wù)?A.ThreadB.RunnableC.CallableD.Future答案:B8.關(guān)于Java中的線(xiàn)程狀態(tài),以下哪個(gè)狀態(tài)表示線(xiàn)程正在執(zhí)行?A.NEWB.RUNNABLEC.BLOCKEDD.TERMINATED答案:B9.在Java并發(fā)編程中,原子類(lèi)(如AtomicInteger)的主要作用是?A.提供高效的整數(shù)計(jì)算B.保證對(duì)變量操作的原子性C.替代普通的整數(shù)類(lèi)型D.用于線(xiàn)程間的通信答案:B10.以下哪種方式可以創(chuàng)建一個(gè)守護(hù)線(xiàn)程?A.設(shè)置線(xiàn)程的優(yōu)先級(jí)為最低B.在線(xiàn)程啟動(dòng)前調(diào)用setDaemon(true)C.使用特殊的構(gòu)造函數(shù)D.無(wú)法創(chuàng)建守護(hù)線(xiàn)程答案:B二、多項(xiàng)選擇題(每題2分,共10題)1.以下哪些是Java中的線(xiàn)程狀態(tài)?A.NEWB.RUNNABLEC.WAITINGD.TIMED_WAITINGE.BLOCKEDF.TERMINATED答案:ABCDEF2.關(guān)于Java中的synchronized關(guān)鍵字,以下正確的是?A.保證代碼塊內(nèi)的操作是原子性的B.可以解決線(xiàn)程安全問(wèn)題C.是可重入鎖D.只能用于實(shí)例方法答案:ABC3.在Java中,以下哪些可以用于線(xiàn)程間的通信?A.wait()和notify()B.共享變量C.管道流D.信號(hào)量答案:ABCD4.以下關(guān)于Java并發(fā)包中的類(lèi),正確的有?A.CountDownLatch用于等待多個(gè)線(xiàn)程完成任務(wù)B.CyclicBarrier用于讓一組線(xiàn)程互相等待,到達(dá)一個(gè)共同點(diǎn)后再繼續(xù)執(zhí)行C.Semaphore用于控制對(duì)共享資源的訪(fǎng)問(wèn)數(shù)量D.ConcurrentHashMap是線(xiàn)程安全的哈希表答案:ABCD5.以下哪些是創(chuàng)建線(xiàn)程的方式?A.繼承Thread類(lèi)B.實(shí)現(xiàn)Runnable接口C.實(shí)現(xiàn)Callable接口D.使用線(xiàn)程池答案:ABCD6.關(guān)于Java中的原子類(lèi),以下說(shuō)法正確的是?A.AtomicInteger用于原子操作整數(shù)B.AtomicBoolean用于原子操作布爾值C.原子類(lèi)是無(wú)鎖的實(shí)現(xiàn)D.原子類(lèi)的操作是線(xiàn)程安全的答案:ABD7.在Java多線(xiàn)程中,以下哪些會(huì)導(dǎo)致線(xiàn)程阻塞?A.調(diào)用sleep()方法B.等待獲取鎖C.調(diào)用wait()方法D.執(zhí)行耗時(shí)的計(jì)算答案:ABC8.以下哪些是Java中線(xiàn)程安全的集合類(lèi)?A.VectorB.HashtableC.ConcurrentHashMapD.CopyOnWriteArrayList答案:ABCD9.關(guān)于Java中的線(xiàn)程池,以下說(shuō)法正確的是?A.可以提高線(xiàn)程的創(chuàng)建和銷(xiāo)毀效率B.有固定大小的線(xiàn)程池C.有緩存線(xiàn)程池D.可以設(shè)置線(xiàn)程池的拒絕策略答案:ABCD10.以下哪些方法可以讓線(xiàn)程釋放鎖?A.wait()B.notify()C.執(zhí)行完synchronized代碼塊D.線(xiàn)程異常退出答案:ACD三、判斷題(每題2分,共10題)1.在Java中,線(xiàn)程一旦啟動(dòng)就不能停止。(×)2.所有的集合類(lèi)在多線(xiàn)程環(huán)境下都是不安全的。(×)3.synchronized關(guān)鍵字只能修飾方法。(×)4.守護(hù)線(xiàn)程在所有用戶(hù)線(xiàn)程結(jié)束后會(huì)自動(dòng)結(jié)束。(√)5.線(xiàn)程的優(yōu)先級(jí)越高,執(zhí)行速度就越快。(×)6.Atomic類(lèi)在多線(xiàn)程環(huán)境下操作變量不需要加鎖。(√)7.當(dāng)一個(gè)線(xiàn)程調(diào)用了對(duì)象的wait()方法后,會(huì)釋放對(duì)象的鎖。(√)8.線(xiàn)程池中的線(xiàn)程數(shù)量是固定不變的。(×)9.兩個(gè)線(xiàn)程可以同時(shí)訪(fǎng)問(wèn)同一個(gè)synchronized方法。(×)10.在Java中,Callable接口可以返回結(jié)果,而Runnable接口不能。(√)四、簡(jiǎn)答題(每題5分,共4題)1.簡(jiǎn)述Java中synchronized關(guān)鍵字的作用。答案:synchronized關(guān)鍵字主要用于保證在同一時(shí)刻,只有一個(gè)線(xiàn)程能夠執(zhí)行被它修飾的代碼塊或者方法,從而解決多線(xiàn)程并發(fā)訪(fǎng)問(wèn)共享資源時(shí)的線(xiàn)程安全問(wèn)題,實(shí)現(xiàn)對(duì)共享資源的互斥訪(fǎng)問(wèn)。2.說(shuō)明Java中線(xiàn)程的幾種狀態(tài)及其轉(zhuǎn)換關(guān)系。答案:線(xiàn)程狀態(tài)有NEW(新建)、RUNNABLE(可運(yùn)行)、WAITING(等待)、TIMED_WAITING(定時(shí)等待)、BLOCKED(阻塞)、TERMINATED(終止)。新建的線(xiàn)程啟動(dòng)后進(jìn)入可運(yùn)行狀態(tài),可運(yùn)行狀態(tài)的線(xiàn)程在獲取不到鎖時(shí)進(jìn)入阻塞狀態(tài),可運(yùn)行狀態(tài)的線(xiàn)程調(diào)用wait等方法進(jìn)入等待狀態(tài),等待狀態(tài)的線(xiàn)程滿(mǎn)足一定條件可回到可運(yùn)行狀態(tài),線(xiàn)程執(zhí)行完后進(jìn)入終止?fàn)顟B(tài)。3.什么是Java中的線(xiàn)程池?有什么優(yōu)點(diǎn)?答案:線(xiàn)程池是管理和復(fù)用線(xiàn)程的一種機(jī)制。優(yōu)點(diǎn)是減少線(xiàn)程創(chuàng)建和銷(xiāo)毀的開(kāi)銷(xiāo),提高響應(yīng)速度,對(duì)線(xiàn)程進(jìn)行統(tǒng)一管理和分配任務(wù),可控制并發(fā)線(xiàn)程數(shù)量,避免線(xiàn)程過(guò)多導(dǎo)致系統(tǒng)資源耗盡。4.解釋Java中的原子類(lèi)(如AtomicInteger)的原理。答案:原子類(lèi)通過(guò)使用CAS(比較并交換)操作實(shí)現(xiàn)原子性。它在更新變量時(shí),會(huì)比較當(dāng)前值與預(yù)期值,如果相等則更新,否則不更新,這個(gè)過(guò)程是原子的,不需要加鎖就可保證多線(xiàn)程下對(duì)變量操作的正確性。五、討論題(每題5分,共4題)1.在Java并發(fā)編程中,如何避免死鎖?答案:避免死鎖可以采用按順序獲取鎖、避免鎖嵌套、設(shè)置獲取鎖的超時(shí)時(shí)間等方法。2.比較Runnable接口和Callable接口的異同。答案:相同點(diǎn)是都可用于定義線(xiàn)程任務(wù)。不同點(diǎn)是Callable接口有返回值且可拋出異常,Runnable接口無(wú)返回值且不能拋出受檢異常。3.如何提高Ja

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論