實現多線程的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
推薦去個人博客閱讀更多:
2.Spring MVC、Spring Boot、Spring Cloud 系列教程
3.Maven、Git、Eclipse、Intellij IDEA 系列工具教程
以爲不錯,別忘了點贊+轉發哦!