java 多線程Thread和Runnable的區別


 

如果一個類繼承Thread,則不適合資源共享。但是如果實現了Runable接口的話,則很容易的實現資源共享

實現Runnable接口比繼承Thread類所具有的優勢:
1. 適合多個相同的程序代碼的線程去共享同一個資源。


2.
避免了單繼承的局限性

一個類只能繼承一個類(一個人只能有一個親爹),類繼承了Thread類就不能繼承其他的類
實現了Runnable接口,還可以繼承其他的類,實現其他的接口 

DEMO:

實現類,可以復用runnable方法 

方法1:

 

 

方法2:

 

 

 測試類:

實現runbale方法

 

 

測試runnable2 方法

 

 

 

 

3. 增加程序的健壯性,實現解耦操作,代碼可以被多個線程共享,代碼和線程獨立。

實現Runnable接口的方式,把設置線程任務和開啟新線程進行了分離(解耦)
實現類中,重寫了run方法:用來設置線程任務
創建Thread類對象,調用start方法:用來開啟新線程


4. 線程池只能放入實現RunableCallable類線程,不能直接放入繼承Thread的類。

 

  在java中,每次程序運行至少啟動2個線程。一個是main線程,一個是垃圾收集線程。因為每當使用
java命令執行一個類的時候,實際上都會啟動一個JVM,每一個JVM其實在就是在操作系統中啟動了一個進
程。


免責聲明!

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



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