亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

伊吾县| 安平县| 盱眙县| 土默特右旗| 和田县| 临安市| 普定县| 锡林郭勒盟| 桐梓县| 班戈县| 木里| 霸州市| 乌鲁木齐市| 通州区| 定日县| 商丘市| 陇西县| 益阳市| 房产| 监利县| 汽车| 通榆县| 广宗县| 肥西县| 南乐县| 公安县| 雅安市| 镇雄县| 昌吉市| 勐海县| 榕江县| 布拖县| 通城县| 衡南县| 齐河县| 南陵县| 鹿泉市| 正宁县| 永新县| 沽源县| 永仁县|