中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java新增了哪些創建線程的方式

發布時間:2020-06-03 15:21:40 來源:億速云 閱讀:266 作者:Leah 欄目:編程語言

java創建線程的方式有哪些?針對這個問題,今天小編總結這篇有關java創建線程的文章,希望能幫助更多想解決這個問題的朋友找到更加簡單易行的辦法。

方式一:實現Callable接口

好處:
(1)與使用Runnable相比,Callable功能更強大些
(2)相比run()方法,可以有返回值
(3)方法可以拋出異常
(4)支持泛型的返回值
(5)需要借助FutureTask類,比如獲取返回結果
Future接口:
1)可以對具體的Runnable\Callable任務的執行結果進行取消、查詢是否完成、獲取結果等
2)FutureTask是Future接口唯一的實現類
3)FutureTask同時實現了Runnable,Future接口。
【它既可以作為Runnable被線程執行,又可以作為Future得到Callable的返回值】

創建的過程和實例

java新增了哪些創建線程的方式

//1.創建實現類
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.創建實現Callable接口的實例對象
        NumThread numThread = new NumThread();
    //4.將實現類的對象作為參數傳遞到FutureTask構造器,創建 FutureTask對象
        FutureTask futureTask = new FutureTask(numThread);
    //5.將FutureTask的對象作為參數傳遞到Thread類的構造器中,并調用start()
        new Thread(futureTask).start();
//6.需要的話,可以借助FutureTask的對象進行一系列操作
        try {
            //get()返回值為FutureTask構造器參數Callable實現類重寫的call()的返回值
            Object sum = futureTask.get();
            System.out.println("總和:"+sum);
        } catch (InterruptedException e) {
            e.printStackTrace();
        } catch (ExecutionException e) {
            e.printStackTrace();
        }
    }
}

java新增了哪些創建線程的方式

方式二:使用線程池

好處:

1)提高響應速度--減少創建新線程的時間
2)降低資源消耗--重復利用線程池中的線程,不需要每次都創建
3)便于線程管理:
corePoolSize:核心池的大小
maximumPoolSize:最大線程數
keepAliveTime:線程沒有任務時最多保持多長時間會終止
線程池相關API--ExecutorService和Executors
ExecutorService:真正的線程池接口,常見子類ThreadPoolExecutor
Executors:工具類、線程池的工廠類。用于創建并返回不同類型的線程池
java新增了哪些創建線程的方式

java新增了哪些創建線程的方式
綜上所述,創建線程的兩種方式各有各的優點,具體使用還要根據自己情況選擇其中一種方式,如果想了解更多相關文章內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

娱乐| 睢宁县| 伊吾县| 葫芦岛市| 嫩江县| 麻栗坡县| 城市| 民丰县| 华坪县| 灌阳县| 涪陵区| 太仓市| 鲜城| 社旗县| 宁晋县| 宜宾县| 德阳市| 保定市| 电白县| 嘉定区| 凤庆县| 和顺县| 平湖市| 孟州市| 临桂县| 钟山县| 紫阳县| 出国| 桑植县| 子长县| 信阳市| 麻栗坡县| 大新县| 湘乡市| 郁南县| 宝兴县| 南阳市| 呼伦贝尔市| 贵港市| 五华县| 砀山县|