更新時(shí)間:2020-01-19 14:42:30 來源:動(dòng)力節(jié)點(diǎn) 瀏覽2603次
實(shí)現(xiàn)多線程的3種方式
1、繼承Thread類
看jdk源碼可以發(fā)現(xiàn),Thread類其實(shí)是實(shí)現(xiàn)了Runnable接口的一個(gè)實(shí)例,繼承Thread類后需要重寫run方法并通過start方法啟動(dòng)線程。
繼承Thread類耦合性太強(qiáng)了,因?yàn)閖ava只能單繼承,所以不利于擴(kuò)展。
2、實(shí)現(xiàn)Runnable接口
通過實(shí)現(xiàn)Runnable接口并重寫run方法,并把Runnable實(shí)例傳給Thread對(duì)象,Thread的start方法調(diào)用run方法再通過調(diào)用Runnable實(shí)例的run方法啟動(dòng)線程。
所以如果一個(gè)類繼承了另外一個(gè)父類,此時(shí)要實(shí)現(xiàn)多線程就不能通過繼承Thread的類實(shí)現(xiàn)。
3、實(shí)現(xiàn)Callable接口
通過實(shí)現(xiàn)Callable接口并重寫call方法,并把Callable實(shí)例傳給FutureTask對(duì)象,再把FutureTask對(duì)象傳給Thread對(duì)象。它與Thread、Runnable最大的不同是Callable能返回一個(gè)異步處理的結(jié)果Future對(duì)象并能拋出異常,而其他兩種不能。
示例代碼
結(jié)果輸出:
Thread1 running...
Thread2 running...
Thread3 running...
name:java,age:22
以上就是動(dòng)力節(jié)點(diǎn)Java培訓(xùn)機(jī)構(gòu)小編介紹的“Java多線程實(shí)現(xiàn)的3種方式”的內(nèi)容,希望對(duì)大家有幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)內(nèi)容
java多線程的狀態(tài)轉(zhuǎn)換以及基本操作
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743