Java基礎(chǔ)案例教程(第2版)課后習(xí)題第8章 多線程及答案_第1頁
Java基礎(chǔ)案例教程(第2版)課后習(xí)題第8章 多線程及答案_第2頁
Java基礎(chǔ)案例教程(第2版)課后習(xí)題第8章 多線程及答案_第3頁
Java基礎(chǔ)案例教程(第2版)課后習(xí)題第8章 多線程及答案_第4頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

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

文檔簡介

第8章 多線程一、填空題1.實(shí)現(xiàn)多線程的兩種方式是繼承________類和實(shí)現(xiàn)________接口。2.線程的整個生命周期分為5個階段,分別是________、________、________、阻塞狀態(tài)和死亡狀態(tài)。3.Thread類中的________方法用于開戶一個新線程,當(dāng)新線程啟動后,系統(tǒng)會自動調(diào)用________方法。4.執(zhí)行________方法,可以讓線程在規(guī)定的時間內(nèi)休眠。5.同步代碼塊使用________關(guān)鍵字來修飾。二、判斷題1.當(dāng)我們創(chuàng)建一個線程對象時,該對象表示的線程就立即開始運(yùn)行。2.靜態(tài)方法不能使用synchronized關(guān)鍵字來修飾。3.對Java程序來說,只要還有一個前臺線程在運(yùn)行,這個進(jìn)程就不會結(jié)束。4.實(shí)現(xiàn)Runnable接口比繼承Thread類創(chuàng)建線程的方式擴(kuò)展性更好。5.使用synchronized關(guān)鍵字修飾的代碼塊,被稱作同步代碼塊。三、選擇題1.下列有關(guān)線程的創(chuàng)建方式說法錯誤的是()A、通過繼承Thread類與實(shí)現(xiàn)Runnable接口都可以創(chuàng)建多線程程序B、實(shí)現(xiàn)Runnable接口相對于繼承Thread類來說,可以避免由于Java的單繼承帶來的局限性C、通過繼承Thread類與實(shí)現(xiàn)Runnable接口創(chuàng)建多線程這兩種方式?jīng)]有區(qū)別D、大部分的多線程應(yīng)用都會采用實(shí)現(xiàn)Runnable接口方式創(chuàng)建2.下列關(guān)于線程優(yōu)先級的描述,錯誤的是()A、NORM_PRIORITY代表普通優(yōu)先級,默認(rèn)值是5B、 一般情況下,主函數(shù)具有普通優(yōu)先級C、新建線程的優(yōu)先級默認(rèn)為最低D、優(yōu)先級高的線程獲得先執(zhí)行權(quán)的幾率越大3.下面關(guān)于join()方法描述正確的是()A、join()方法是用于線程休眠B、join()方法是用于線程啟動C、join()方法是用于線程插隊(duì)D、join()方法是用于線程同步4.Java多線程中,關(guān)于解決死鎖的方法說法錯誤的是()A、避免存在一個進(jìn)程等待序列{P1,P2,…,Pn},其中P1等待P2所占有的某一資源,P2等待P3所占有的某一源,…...,而Pn等待P1所占有的的某一資源,可以避免死鎖B、打破互斥條件,即允許進(jìn)程同時訪問某些資源,可以預(yù)防死鎖,但是,有的資源是不允許被同時訪問的,所以這種辦法并無實(shí)用價(jià)值C、打破不可搶占條件。即允許進(jìn)程強(qiáng)行從占有者那里奪取某些資源。就是說,當(dāng)一個進(jìn)程已占有了某些資源,它又申請新的資源,但不能立即被滿足時,它必須釋放所占有的全部資源,以后再重新申請。它所釋放的資源可以分配給其它進(jìn)程。這樣可以避免死鎖D、使用打破循環(huán)等待條件(避免第一個線程等待其它線程,后者又在等待第一個線程)的方法不能避免線程死鎖5.對于線程的生命周期,下面四種說法正確的有哪些?(多選)()A.調(diào)用了線程的start()方法,該線程就進(jìn)入運(yùn)行狀態(tài)B.線程的run()方法運(yùn)行結(jié)束或被未catch的InterruptedException等異常終結(jié),那么該線程進(jìn)入死亡狀態(tài)C.線程進(jìn)入死亡狀態(tài),但是該線程對象仍然是一個Thread對象,在沒有被垃圾回收器回收之前仍可以像引用其他對象一樣引用它D.線程進(jìn)入死亡狀態(tài)后,調(diào)用它的start()方法仍然可以重新啟動四、簡答題1.簡述創(chuàng)建多線程的兩種方式。2.簡述同步代碼塊的作用。五、編程題1.模擬三個老師同時給50個小朋友發(fā)蘋果,每個老師相當(dāng)于一個線程。第8章 多線程一.填空1.ThreadRunnable2.新建狀態(tài)(New)、就緒狀態(tài)(Runnable)、運(yùn)行狀態(tài)(Running)3.start()、run()方法4.sleep()5.synchronized二.判斷1.錯2.錯3.對4.對5.對三.選擇1.C2.C3.C4.D5.BC四.簡答1.一種是繼承java.lang包下的Thread類,覆寫Thread類的run()方法,在run()方法中實(shí)現(xiàn)運(yùn)行在線程上的代碼。newThread(){publicvoidrun(){}}.start();另一種就是實(shí)現(xiàn)java.lang.Runnable接口,同樣是在run()方法中實(shí)現(xiàn)運(yùn)行在線程上的代碼。classMyThreadimplementsRunnable{ publicvoidrun(){}}2.同步代碼塊的作用是控制線程,保證同步代碼塊中只能有一個線程在運(yùn)行,保證了多線程操作數(shù)據(jù)的安全性。五.編程1.參考答案publicclassTest01{ publicstaticvoidmain(String[]args){ Teachert=newTeacher(); newThread(t,"陳老師").start(); newThread(t,"高老師").start(); newThread(t,"李老師").start(); }}classTeacherimplementsRunnable{ privateintnotes=50; publicvoidrun(){ while(true){ dispatchNotes(); if(notes<=0){ break; } } } privatesynchronizedvoiddispatchNotes(){ if(notes>0){ try{ Thread.sleep(10);//經(jīng)過的線程休眠10毫秒 }catch(InterruptedExceptio

溫馨提示

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

最新文檔

評論

0/150

提交評論