更新時(shí)間:2020年09月29日10時(shí)37分 來(lái)源:傳智播客 瀏覽次數(shù):
(1)問(wèn)題分析:
面試官考核的是線(xiàn)程創(chuàng)建方式及其優(yōu)缺點(diǎn)
(2)核心答案講解:
1)繼承Thread類(lèi)
2)實(shí)現(xiàn)Runnable接口
3)實(shí)現(xiàn)Callable接口
4)線(xiàn)程池方式
優(yōu)缺點(diǎn):
1)繼承Thread類(lèi)
優(yōu)點(diǎn):代碼簡(jiǎn)單 。 缺點(diǎn):該類(lèi)無(wú)法集成別的類(lèi)。
2)實(shí)現(xiàn)Runnable接口
優(yōu)點(diǎn):繼承其他類(lèi)。 同一實(shí)現(xiàn)該接口的實(shí)例可以共享資源。
缺點(diǎn):代碼復(fù)雜
3)實(shí)現(xiàn)Callable
優(yōu)點(diǎn):可以獲得異步任務(wù)的返回值
4)線(xiàn)程池:實(shí)現(xiàn)自動(dòng)化裝配,易于管理,循環(huán)利用資源。
(3)問(wèn)題擴(kuò)展:
在Java中Lock接口比synchronized塊的優(yōu)勢(shì)是什么?你需要實(shí)現(xiàn)一個(gè)高效的緩存,它允許多個(gè)用戶(hù)讀,但只允許一個(gè)用戶(hù)寫(xiě),以此來(lái)保持它的完整性,你會(huì)怎樣去實(shí)現(xiàn)它?
整體上來(lái)說(shuō)Lock是synchronized的擴(kuò)展版,Lock提供了無(wú)條件的、可輪詢(xún)的(tryLock方法)、定時(shí)的(tryLock帶參方法)、可中斷的(lockInterruptibly)、可多條件隊(duì)列的(newCondition方法)鎖操作。另外Lock的實(shí)現(xiàn)類(lèi)基本都支持非公平鎖(默認(rèn))和公平鎖,synchronized只支持非公平鎖,當(dāng)然,在大部分情況下,非公平鎖是高效的選擇。
(4)結(jié)合項(xiàng)目中使用:
用戶(hù)登錄成功之后需要記錄用戶(hù)連續(xù)登錄天數(shù),給用戶(hù)獎(jiǎng)勵(lì)積分??梢詣?chuàng)建一個(gè)線(xiàn)程,單獨(dú)調(diào)用積分接口。
猜你喜歡:
RabbitMQ入門(mén)教程【Java 進(jìn)階教程】
2020-09-24Java進(jìn)階教程:百度地圖原理與應(yīng)用
2020-09-24TreeMap數(shù)據(jù)結(jié)構(gòu)視頻教程【java進(jìn)階】
2020-09-24零基礎(chǔ)Java基礎(chǔ)教程【9天入門(mén)】
2020-09-24Java圖形界面開(kāi)發(fā)基礎(chǔ)視教程|傳智播客教程【百度云盤(pán)下載】
2020-09-24Sentinel視頻教程:阿里分布式服務(wù)架構(gòu)流量控制組件Sentinel視頻教程
2020-09-23北京校區(qū)