java多線程試題_答案_第1頁(yè)
java多線程試題_答案_第2頁(yè)
java多線程試題_答案_第3頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

1、多線程一. 選擇題1 .下列說(shuō)法中錯(cuò)誤的一項(xiàng)是( A)A. 線程就是程序B.線程是一個(gè)程序的單個(gè)執(zhí)行流B. 多線程是指一個(gè)程序的多個(gè)執(zhí)行流D.多線程用于實(shí)現(xiàn)并發(fā)2 .下列哪個(gè)一個(gè)操作不能使線程從等待阻塞狀態(tài)進(jìn)入對(duì)象阻塞狀態(tài)( D)A. 等待陰塞狀態(tài)下的線程被notify()喚B. 等待阻塞狀態(tài)下的純種被interrput()中斷C. 等待時(shí)間到D. 等待阻塞狀態(tài)下的線程調(diào)用wait()方法3 .下列哪個(gè)方法可以使線程從運(yùn)行狀態(tài)進(jìn)入其他阻塞狀態(tài)( A)A. sleepB.waitC.yieldD.start4 .下列說(shuō)法中錯(cuò)誤的一項(xiàng)是(D)A. 一個(gè)線程是一個(gè)Thread類的實(shí)例B. 線程從傳遞

2、名純種的 Runnable實(shí)例run()方法開(kāi)始執(zhí)行C. 線程操作的數(shù)據(jù)來(lái)自 Runnable實(shí)例D. 新建的線程調(diào)用start()方法就能立即進(jìn)入運(yùn)行狀態(tài)5 .下列關(guān)于Thread類提供的線程控制方法的說(shuō)法中,錯(cuò)誤的一項(xiàng)是( D)A. 在線程A中執(zhí)行線程B的join()方法,則線程 A等待直到B執(zhí)行完成B. 線程A通過(guò)調(diào)用interrupt。方法來(lái)中斷其阻塞狀態(tài)C. 若線程A調(diào)用方法isAlive()返回值為true,則說(shuō)明A正在執(zhí)行中D. currentThread()方法返回當(dāng)前線程的引用6 .下列說(shuō)法中,錯(cuò)誤的一項(xiàng)是()A. 對(duì)象鎖在synchronized。語(yǔ)句執(zhí)行完之后由持有它的線

3、程返還B. 對(duì)象鎖在synchronized。語(yǔ)句中出現(xiàn)異常時(shí)由持有它的線程返還C. 當(dāng)持有鎖的線程調(diào)用了該對(duì)象的wait()方法時(shí),線程將釋放其持有的鎖D. 當(dāng)持有鎖的線程調(diào)用了該對(duì)象的構(gòu)造方法時(shí),線程將釋放其持有的鎖7 .下面的哪一個(gè)關(guān)鍵字通常用來(lái)對(duì)對(duì)象的加鎖,從而使得對(duì)對(duì)象的訪問(wèn)是排他的AA. sirializeB transientC synchronizedD static二.填空題1 .在操作系統(tǒng)中,被稱做輕型的進(jìn)程是線程2 .多線程程序設(shè)計(jì)的含義是可以將一個(gè)程序任務(wù)分成幾個(gè)并行的任務(wù)3 .在Java程序中,run()方法的實(shí)現(xiàn)有兩種方式:實(shí)現(xiàn)Runnable接口和_繼承 Thre

4、ad 類4 .多個(gè)線程并發(fā)執(zhí)行時(shí),各個(gè)線程中語(yǔ)句的執(zhí)行順序是 確定的,但是線程之間的相對(duì)執(zhí)行順序是不確定的6 .Java中的對(duì)象鎖是一種獨(dú)占的排他 鎖7 .程序中可能出現(xiàn)一種情況:多個(gè)線種互相等待對(duì)方持有的鎖,而在得到對(duì)方的鎖 之前都不會(huì)釋放自己的鎖,這就是 死鎖8 .線程的優(yōu)先級(jí)是在 Thread類的常數(shù) MIN_PRIORITY 和_MAX_PRIORITY 之間的一個(gè)值9 .處于新建狀態(tài)的線程可以使用的控制方法是start()和 stop()。10 .一個(gè)進(jìn)程可以包含多個(gè)線程三.簡(jiǎn)答題1.說(shuō)明幾個(gè)概念:對(duì)象鎖、sleep、wait、notify、notifyAll對(duì)象鎖:每個(gè)對(duì)象都有對(duì)象

5、鎖,當(dāng)某個(gè)線程進(jìn)入用synchronized 定義方法時(shí),就獲得了當(dāng)前類對(duì)象(方法所屬的類的對(duì)象)的鎖,其他線程就不能再獲得該鎖,直到線程釋放該鎖。一個(gè)類對(duì)象有一個(gè)對(duì)象鎖,多個(gè)同步方法公用一個(gè)對(duì)象鎖。sleep :是當(dāng)前線程處于休眠狀態(tài),將對(duì)cpu的控制權(quán)交給其他線程,但不釋放當(dāng)前對(duì)象的鎖,其他線程可以獲得cpu,但不能進(jìn)入當(dāng)前線程控制的對(duì)象鎖。wait :與sleep的區(qū)別是,它會(huì)釋放對(duì)象鎖,其他線程可以進(jìn)入該同步塊。notify :進(jìn)入當(dāng)前同步塊的線程調(diào)用wait方法變成休眠狀態(tài)的線程,notify 將該線程變成等待狀態(tài)。notifyAll :進(jìn)入當(dāng)前同步塊的線程調(diào)用wait方法變成休眠狀

6、態(tài),notifyAll 使所有休眠線程變成等待狀態(tài)。一個(gè)類中有多個(gè)同步方法,進(jìn)入任意一個(gè)同步塊都將獲得該對(duì)象鎖,由于 wait方法使 進(jìn)入同步塊的線程休眠,notify 只能喚醒所有被休眠線程中的一個(gè),notifyAll 可以喚醒所有休眠線程。通常線程的通信通過(guò) wait , notifyAll 和wait條件來(lái)實(shí)現(xiàn)。2. java中有幾種方法可以實(shí)現(xiàn)一個(gè)線程?用什么關(guān)鍵字修飾同步方法? S有兩種實(shí)現(xiàn)方法,分別是繼承Thread 類與實(shí)現(xiàn)Runnable 接口用synchronized 關(guān)鍵字修飾同步方法3. sleep() 和wait() 有什么區(qū)別?答:sleep是線程類(Thread )

7、的方法,導(dǎo)致此線程暫停執(zhí)行指定時(shí)間,給執(zhí)行機(jī)會(huì)給其他線程,但是監(jiān)控狀態(tài)依然保持,到時(shí)后會(huì)自動(dòng)恢復(fù)。調(diào)用 sleep 不會(huì)釋放對(duì) 象鎖。wait是Object類的方法,對(duì)此對(duì)象調(diào)用 wait方法導(dǎo)致本線程放棄對(duì)象鎖,進(jìn)入 等待此對(duì)象的等待鎖定池,只有針對(duì)此對(duì)象發(fā)出notify 方法(或notifyAll )后本線程才進(jìn)入對(duì)象鎖定池準(zhǔn)備獲得對(duì)象鎖進(jìn)入運(yùn)行狀態(tài)。4. 同步和異步有何異同,在什么情況下分別使用他們?舉例說(shuō)明。答:如果數(shù)據(jù)將在線程間共享。例如正在寫的數(shù)據(jù)以后可能被另一個(gè)線程讀到,或者正在讀的數(shù)據(jù)可能已經(jīng)被另一個(gè)線程寫過(guò)了,那么這些數(shù)據(jù)就是共享數(shù)據(jù),必須進(jìn)行同步存取。當(dāng)應(yīng)用程序在對(duì)象上調(diào)用了一個(gè)需要花費(fèi)很長(zhǎng)時(shí)間來(lái)執(zhí)行的方法,并且不希望讓程序等待方法的返回時(shí),就應(yīng)該使用異步編程,在很多情況下采用異步途徑往往更有效率。5. 啟動(dòng)一個(gè)線程是用run() 還是start()?答:?jiǎn)?dòng)一個(gè)線程是調(diào)用start() 方法,使線程所代表的虛擬處理機(jī)處于可運(yùn)行狀態(tài),這意味著它可以由JVM調(diào)度并執(zhí)行。這并不意味著線程就會(huì)立即運(yùn)行。run()方法可以產(chǎn)生必須退出的標(biāo)志來(lái)停止一個(gè)線程。6. 多線程有幾種實(shí)現(xiàn)方法,都是什么?同步有幾種實(shí)現(xiàn)方法,都是什么?答:多線程

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論