java創(chuàng)建線程的方式有哪些?針對這個(gè)問題,今天小編總結(jié)這篇有關(guān)java創(chuàng)建線程的文章,希望能幫助更多想解決這個(gè)問題的朋友找到更加簡單易行的辦法。
創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比博白網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式博白網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋博白地區(qū)。費(fèi)用合理售后完善,十載實(shí)體公司更值得信賴。好處:
(1)與使用Runnable相比,Callable功能更強(qiáng)大些
(2)相比run()方法,可以有返回值
(3)方法可以拋出異常
(4)支持泛型的返回值
(5)需要借助FutureTask類,比如獲取返回結(jié)果
Future接口:
1)可以對具體的Runnable\Callable任務(wù)的執(zhí)行結(jié)果進(jìn)行取消、查詢是否完成、獲取結(jié)果等
2)FutureTask是Future接口唯一的實(shí)現(xiàn)類
3)FutureTask同時(shí)實(shí)現(xiàn)了Runnable,Future接口。
【它既可以作為Runnable被線程執(zhí)行,又可以作為Future得到Callable的返回值】
//1.創(chuàng)建實(shí)現(xiàn)類
class NumThread implements Callable {
//2.重寫call()方法
@Override
public Object call() throws Exception {
int sum=0;
for(int i=1;i<=100;i++){
if(i%2==0){
System.out.println(i);
sum+=i;
}
}
return sum;
}
}
public class ThreadNew {
public static void main(String[] args) {
//3.創(chuàng)建實(shí)現(xiàn)Callable接口的實(shí)例對象
NumThread numThread = new NumThread();
//4.將實(shí)現(xiàn)類的對象作為參數(shù)傳遞到FutureTask構(gòu)造器,創(chuàng)建 FutureTask對象
FutureTask futureTask = new FutureTask(numThread);
//5.將FutureTask的對象作為參數(shù)傳遞到Thread類的構(gòu)造器中,并調(diào)用start()
new Thread(futureTask).start();
//6.需要的話,可以借助FutureTask的對象進(jìn)行一系列操作
try {
//get()返回值為FutureTask構(gòu)造器參數(shù)Callable實(shí)現(xiàn)類重寫的call()的返回值
Object sum = futureTask.get();
System.out.println("總和:"+sum);
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
}
好處:
1)提高響應(yīng)速度--減少創(chuàng)建新線程的時(shí)間
2)降低資源消耗--重復(fù)利用線程池中的線程,不需要每次都創(chuàng)建
3)便于線程管理:
corePoolSize:核心池的大小
maximumPoolSize:大線程數(shù)
keepAliveTime:線程沒有任務(wù)時(shí)最多保持多長時(shí)間會(huì)終止
線程池相關(guān)API--ExecutorService和Executors
ExecutorService:真正的線程池接口,常見子類ThreadPoolExecutor
Executors:工具類、線程池的工廠類。用于創(chuàng)建并返回不同類型的線程池
綜上所述,創(chuàng)建線程的兩種方式各有各的優(yōu)點(diǎn),具體使用還要根據(jù)自己情況選擇其中一種方式,如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。