国产精一区二区_午夜视频99_免费白白视频_中文字幕一区免费

熱門文章> java實現(xiàn)多線程的幾種方式 >

java實現(xiàn)多線程的幾種方式

36氪企服點評小編
2022-01-14 17:42
3278次閱讀

在Java中,多線程主要的實現(xiàn)方式有四種:1、繼承Thread類;2、實現(xiàn)Runnable接口;3、實現(xiàn)Callable接口通過FutureTask包裝器來創(chuàng)建Thread線程;4、使用ExecutorService、Callable、Future實現(xiàn)有返回結(jié)果的多線程。其中前兩種方式線程執(zhí)行完后都沒有返回值,而后兩種是帶返回值的。

java實現(xiàn)多線程的幾種方式java實現(xiàn)多線程的幾種方式

1、繼承Thread類創(chuàng)建線程

Thread類本質(zhì)上也是實現(xiàn)了Runnable接口的一個實例,代表一個線程的實例。啟動線程的唯一方法就是通過Thread類的start()實例方法。

start()方法是一個native方法,它將啟動一個新線程,并執(zhí)行run()方法。這種方式實現(xiàn)多線程比較簡單,通過繼承Thread類并復(fù)寫run()方法,就可以啟動新線程并執(zhí)行自己定義的run()方法。

 

2、實現(xiàn)Runnable接口創(chuàng)建線程

由于Java是單繼承機制,如果自己的類已經(jīng)繼承自另一個類,則無法再直接繼承Thread類,此時,可以通過實現(xiàn)Runnable接口來實現(xiàn)多線程。

實現(xiàn)Runnable接口并實現(xiàn)其中的run方法,然后通過構(gòu)造Thread實例,傳入Runnable實現(xiàn)類,然后調(diào)用Thread的start方法即可開啟一個新線程。

 

3、實現(xiàn)Callable接口通過FutureTask包裝器來創(chuàng)建Thread線程

首先需要一個實現(xiàn)Callable接口的實例,然后實現(xiàn)該接口的唯一方法call邏輯,接著把Callable實例包裝成FutureTask傳遞給Thread實例啟動新線程。

FutureTask本質(zhì)上也實現(xiàn)了Runnable接口,所以同樣可以用來構(gòu)造Thread實例。

 

4、使用ExecutorService、Callable、Future實現(xiàn)有返回結(jié)果的線程(線程池方式)

ExecutorService、Callable、Future三個接口都是屬于Executor框架??煞祷刂档娜蝿?wù)必須實現(xiàn)Callable接口。通過ExecutorService執(zhí)行Callable任務(wù)后,可以獲取到一個Future的對象,在該對象上調(diào)用get()就可以獲取到Callable任務(wù)返回的結(jié)果了。

[免責(zé)聲明]

文章標(biāo)題: java實現(xiàn)多線程的幾種方式

文章內(nèi)容為網(wǎng)站編輯整理發(fā)布,僅供學(xué)習(xí)與參考,不代表本網(wǎng)站贊同其觀點和對其真實性負責(zé)。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時溝通。發(fā)送郵件至36dianping@36kr.com,我們會在3個工作日內(nèi)處理。

相關(guān)文章
最新文章
查看更多
關(guān)注 36氪企服點評 公眾號
打開微信掃一掃
為您推送企服點評最新內(nèi)容
消息通知
咨詢?nèi)腭v
商務(wù)合作