91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

江北区| 青冈县| 合山市| 呼伦贝尔市| 九寨沟县| 昌都县| 民丰县| 郯城县| 涡阳县| 南安市| 灵山县| 蒙阴县| 石屏县| 桐乡市| 泽库县| 台东市| 兴化市| 台北县| 吴川市| 佛教| 宜兴市| 孟州市| 揭阳市| 庄浪县| 高陵县| 聂荣县| 甘孜县| 贵州省| 焦作市| 康保县| 镇巴县| 太康县| 林口县| 二手房| 定安县| 攀枝花市| 虞城县| 台州市| 仁怀市| 承德县| 百色市|