教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

Java創(chuàng)建線程的方式和優(yōu)缺點(diǎn)【Java面試題】

更新時(shí)間:2020年09月29日10時(shí)37分 來源:傳智播客 瀏覽次數(shù):

(1)問題分析:

面試官考核的是線程創(chuàng)建方式及其優(yōu)缺點(diǎn)

(2)核心答案講解:

1)繼承Thread類

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

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

4)線程池方式

優(yōu)缺點(diǎn):

1)繼承Thread類

優(yōu)點(diǎn):代碼簡單 。 缺點(diǎn):該類無法集成別的類。

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

優(yōu)點(diǎn):繼承其他類。 同一實(shí)現(xiàn)該接口的實(shí)例可以共享資源。

缺點(diǎn):代碼復(fù)雜

3)實(shí)現(xiàn)Callable

優(yōu)點(diǎn):可以獲得異步任務(wù)的返回值

4)線程池:實(shí)現(xiàn)自動化裝配,易于管理,循環(huán)利用資源。

(3)問題擴(kuò)展:

在Java中Lock接口比synchronized塊的優(yōu)勢是什么?你需要實(shí)現(xiàn)一個(gè)高效的緩存,它允許多個(gè)用戶讀,但只允許一個(gè)用戶寫,以此來保持它的完整性,你會怎樣去實(shí)現(xiàn)它?

整體上來說Lock是synchronized的擴(kuò)展版,Lock提供了無條件的、可輪詢的(tryLock方法)、定時(shí)的(tryLock帶參方法)、可中斷的(lockInterruptibly)、可多條件隊(duì)列的(newCondition方法)鎖操作。另外Lock的實(shí)現(xiàn)類基本都支持非公平鎖(默認(rèn))和公平鎖,synchronized只支持非公平鎖,當(dāng)然,在大部分情況下,非公平鎖是高效的選擇。

(4)結(jié)合項(xiàng)目中使用:

用戶登錄成功之后需要記錄用戶連續(xù)登錄天數(shù),給用戶獎勵(lì)積分??梢詣?chuàng)建一個(gè)線程,單獨(dú)調(diào)用積分接口。


猜你喜歡:

敏捷開發(fā)流程圖和敏捷開發(fā)十二原則 

什么是枚舉?沒有枚舉之前,怎么做的? 

Java算法之冒泡排序

傳智播客Java高級軟件工程師課程 

0 分享到:
和我們在線交談!