實現java多線程的3種方式,99%人沒用過第3種

實現多線程的3種方式

一、繼承Thread類java

看jdk源碼能夠發現,Thread類實際上是實現了Runnable接口的一個實例,繼承Thread類後須要重寫run方法並經過start方法啓動線程。面試

繼承Thread類耦合性太強了,由於java只能單繼承,因此不利於擴展。後端

二、實現Runnable接口多線程

經過實現Runnable接口並重寫run方法,並把Runnable實例傳給Thread對象,Thread的start方法調用run方法再經過調用Runnable實例的run方法啓動線程。架構

因此若是一個類繼承了另一個父類,此時要實現多線程就不能經過繼承Thread的類實現。異步

三、實現Callable接口工具

經過實現Callable接口並重寫call方法,並把Callable實例傳給FutureTask對象,再把FutureTask對象傳給Thread對象。它與Thread、Runnable最大的不一樣是Callable能返回一個異步處理的結果Future對象並能拋出異常,而其餘兩種不能。spa

示例代碼

結果輸出:線程

Thread1 running...對象

Thread2 running...

Thread3 running...

name:java,age:22

推薦去個人博客閱讀更多:

1.Java JVM、集合、多線程、新特性系列教程

2.Spring MVC、Spring Boot、Spring Cloud 系列教程

3.Maven、Git、Eclipse、Intellij IDEA 系列工具教程

4.Java、後端、架構、阿里巴巴等大廠最新面試題

以爲不錯,別忘了點贊+轉發哦!

相關文章
相關標籤/搜索