java線程和線程池面試題及答案_第1頁(yè)
java線程和線程池面試題及答案_第2頁(yè)
java線程和線程池面試題及答案_第3頁(yè)
java線程和線程池面試題及答案_第4頁(yè)
java線程和線程池面試題及答案_第5頁(yè)
已閱讀5頁(yè),還剩7頁(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線程和線程池面試題及答案

一、單項(xiàng)選擇題(每題2分,共10題)

1.在Java中,創(chuàng)建線程的哪種方式是推薦的方式?

A.繼承Thread類(lèi)

B.實(shí)現(xiàn)Runnable接口

C.實(shí)現(xiàn)Callable接口

D.繼承Runnable類(lèi)

2.以下哪個(gè)方法是用來(lái)啟動(dòng)一個(gè)新線程的?

A.start()

B.run()

C.join()

D.sleep()

3.Java中線程的優(yōu)先級(jí)范圍是多少?

A.1-10

B.0-5

C.1-5

D.0-10

4.線程池中的線程在執(zhí)行完任務(wù)后,以下哪種情況會(huì)發(fā)生?

A.線程被銷(xiāo)毀

B.線程被回收

C.線程被復(fù)用

D.線程被掛起

5.在Java中,哪個(gè)類(lèi)提供了創(chuàng)建線程池的方法?

A.Thread

B.Executor

C.ExecutorService

D.ThreadPoolExecutor

6.以下哪個(gè)方法可以等待線程終止?

A.join()

B.sleep()

C.wait()

D.notify()

7.在Java中,哪個(gè)類(lèi)提供了線程中斷的方法?

A.Object

B.Thread

C.Runnable

D.Callable

8.Java線程池中哪個(gè)參數(shù)定義了線程池中的線程數(shù)量?

A.corePoolSize

B.maximumPoolSize

C.keepAliveTime

D.workQueue

9.以下哪個(gè)方法可以設(shè)置線程的名稱(chēng)?

A.setName()

B.getName()

C.getId()

D.getPriority()

10.在Java中,哪個(gè)方法可以獲取當(dāng)前線程的引用?

A.currentThread()

B.getThread()

C.getCurrentThread()

D.this

答案:

1.B

2.A

3.A

4.C

5.C

6.A

7.B

8.A

9.A

10.A

二、多項(xiàng)選擇題(每題2分,共10題)

1.以下哪些是Java線程池的類(lèi)型?

A.CachedThreadPool

B.FixedThreadPool

C.SingleThreadExecutor

D.ScheduledThreadPool

2.線程池的哪些參數(shù)可以影響線程池的行為?

A.corePoolSize

B.maximumPoolSize

C.keepAliveTime

D.workQueue

3.在Java中,哪些方法可以用來(lái)中斷線程?

A.interrupt()

B.stop()

C.suspend()

D.join()

4.以下哪些是線程池的拒絕策略?

A.AbortPolicy

B.CallerRunsPolicy

C.DiscardPolicy

D.DiscardOldestPolicy

5.以下哪些是線程池的狀態(tài)?

A.RUNNING

B.SHUTDOWN

C.STOP

D.TIDYING

6.以下哪些是線程池的生命周期方法?

A.shutdown()

B.shutdownNow()

C.isShutdown()

D.isTerminated()

7.以下哪些是線程池的創(chuàng)建方式?

A.Executors.newCachedThreadPool()

B.Executors.newFixedThreadPool()

C.Executors.newSingleThreadExecutor()

D.newThreadPoolExecutor()

8.以下哪些是線程池中的任務(wù)隊(duì)列?

A.ArrayBlockingQueue

B.LinkedBlockingQueue

C.SynchronousQueue

D.PriorityBlockingQueue

9.以下哪些是線程池的線程工廠?

A.DefaultThreadFactory

B.PrivilegedThreadFactory

C.UncaughtExceptionHandler

D.ThreadFactory

10.以下哪些是線程池的鉤子方法?

A.beforeExecute()

B.afterExecute()

C.terminated()

D.execute()

答案:

1.ABCD

2.ABCD

3.AB

4.ABCD

5.ABCD

6.ABCD

7.ABCD

8.ABCD

9.AB

10.ABC

三、判斷題(每題2分,共10題)

1.Java中的線程是輕量級(jí)的,它們共享相同的內(nèi)存空間。(對(duì)/錯(cuò))

2.線程一旦啟動(dòng),就不能被中斷。(對(duì)/錯(cuò))

3.線程池中的線程數(shù)量越多越好,這樣可以提高程序的并發(fā)性能。(對(duì)/錯(cuò))

4.線程池中的線程在執(zhí)行完任務(wù)后會(huì)被銷(xiāo)毀。(對(duì)/錯(cuò))

5.線程池中的線程可以設(shè)置為守護(hù)線程。(對(duì)/錯(cuò))

6.線程池中的線程可以設(shè)置優(yōu)先級(jí)。(對(duì)/錯(cuò))

7.線程池中的線程在任務(wù)隊(duì)列滿(mǎn)時(shí)會(huì)被拒絕執(zhí)行。(對(duì)/錯(cuò))

8.線程池中的線程在執(zhí)行過(guò)程中出現(xiàn)異常,線程池會(huì)終止該線程。(對(duì)/錯(cuò))

9.線程池中的線程可以被回收。(對(duì)/錯(cuò))

10.線程池中的線程可以被復(fù)用。(對(duì)/錯(cuò))

答案:

1.對(duì)

2.錯(cuò)

3.錯(cuò)

4.錯(cuò)

5.對(duì)

6.對(duì)

7.對(duì)

8.錯(cuò)

9.錯(cuò)

10.對(duì)

四、簡(jiǎn)答題(每題5分,共4題)

1.請(qǐng)簡(jiǎn)述Java中線程和進(jìn)程的區(qū)別。

2.請(qǐng)解釋Java線程池中的工作隊(duì)列(workQueue)的作用。

3.請(qǐng)描述線程池的拒絕策略(RejectedExecutionHandler)的作用。

4.請(qǐng)解釋Java中線程的中斷機(jī)制。

答案:

1.線程是進(jìn)程中的一個(gè)實(shí)體,是被系統(tǒng)獨(dú)立調(diào)度和分派的基本單位。線程自身基本上不擁有系統(tǒng)資源,只擁有一點(diǎn)在運(yùn)行中必不可少的資源(如執(zhí)行棧),但它可以與同屬一個(gè)進(jìn)程的其他線程共享進(jìn)程所擁有的全部資源。而進(jìn)程是操作系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位,是應(yīng)用程序運(yùn)行的載體。

2.工作隊(duì)列用于存放待執(zhí)行任務(wù)的隊(duì)列,當(dāng)線程池中的線程數(shù)量達(dá)到corePoolSize時(shí),新的任務(wù)會(huì)被放入工作隊(duì)列中等待執(zhí)行。

3.拒絕策略是在任務(wù)太多,無(wú)法被線程池及時(shí)處理時(shí),對(duì)新提交的任務(wù)進(jìn)行處理的策略。常見(jiàn)的拒絕策略有:直接拋出異常、由調(diào)用者線程運(yùn)行任務(wù)、丟棄任務(wù)、丟棄最老的任務(wù)等。

4.線程的中斷機(jī)制是指當(dāng)一個(gè)線程正在執(zhí)行時(shí),另一個(gè)線程可以請(qǐng)求它停止執(zhí)行。請(qǐng)求中斷的線程會(huì)調(diào)用目標(biāo)線程的interrupt()方法,而被請(qǐng)求中斷的線程會(huì)檢查中斷狀態(tài),并在適當(dāng)?shù)臅r(shí)候停止執(zhí)行。

五、討論題(每題5分,共4題)

1.討論Java中線程池的優(yōu)勢(shì)和劣勢(shì)。

2.討論線程池參數(shù)對(duì)線程池性能的影響。

3.討論線程池的拒絕策略在實(shí)際應(yīng)用中的意義。

4.討論Java線程中斷機(jī)制在多線程編程中的重要性。

答案:

1.優(yōu)勢(shì):線程池可以減少在創(chuàng)建和銷(xiāo)毀線程時(shí)所產(chǎn)生的性能開(kāi)銷(xiāo);可以提高響應(yīng)速度,當(dāng)任務(wù)到達(dá)時(shí),無(wú)需等待線程創(chuàng)建即可立即執(zhí)行;可以提高線程的可管理性,線程是稀缺資源,如果無(wú)限制地創(chuàng)建,不僅會(huì)消耗系統(tǒng)資源,還會(huì)降低系統(tǒng)的穩(wěn)定性。劣勢(shì):線程池的參數(shù)需要根據(jù)應(yīng)用場(chǎng)景進(jìn)行調(diào)整,否則可能會(huì)導(dǎo)致資源浪費(fèi)或者性能瓶頸。

2.線程池參數(shù)對(duì)性能的影響很大,例如corePoolSize和maximumPoolSize決定了線程池中線程的數(shù)量,workQueue的類(lèi)型和大小決定了任務(wù)的存儲(chǔ)方式和容量,keepAliveTim

溫馨提示

  • 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)論