實現一個線程有哪幾種方式,各有什么優缺點,比較常用的是那種?


1) 問題分析

面試官考核的是線程創建方式及優缺點

(2) 核心答案講解

1.繼承Thread類 2.實現Runnable接口

3.實現Callable接口 4.線程池方式

優缺點

1.繼承Thread類

優點 、代碼簡單 。 缺點 、該類無法集成別的類。

2.實現Runnable接口

優點 、繼承其他類。 同一實現該接口的實例可以共享資源。

缺點 、代碼復雜

3.實現Callable

優點 、可以獲得異步任務的返回值

4.線程池 、實現自動化裝配,易於管理,循環利用資源。

(3) 問題擴展

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

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

(4) 結合項目中使用

用戶登錄成功之后需要記錄用戶連續登錄天數,給用戶獎勵積分。可以創建一個線程,單獨調用積分接口。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM