最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

線程池之exectue與submit的區(qū)別及說明

 更新時間:2024年08月06日 16:16:40   作者:Ahuuua  
這篇文章主要介紹了線程池之exectue與submit的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

1、參數(shù)及返回值不同

  • excute只能提交Runnable,無返回值
  • submit既可以提交Runnable,返回值為null,也可以提交Callable,返回值Future

excute:

submit:

2、異常拋出不同

  • execute執(zhí)行任務(wù)時遇到異常會直接拋出
  • submit執(zhí)行任務(wù)是遇到異常不會直接拋出,只有在使用Future的get方法獲取返回值時才會拋出異常

execute:

import org.junit.Test;
 
import java.util.concurrent.*;
 
public class ThreadPoolDemo {
 
    @Test
    public void test() throws InterruptedException, ExecutionException {
        //創(chuàng)建線程池對象
        ExecutorService singleThreadExecutor = Executors.newSingleThreadExecutor();
        singleThreadExecutor.execute(() -> {
            System.out.println("開始");
            int i = 10 / 0;
            System.out.println("結(jié)束");
        });
    }
}

輸出:

開始
Exception in thread "pool-1-thread-1" java.lang.ArithmeticException: / by zero
at ThreadPoolDemo.lambda$test$0(ThreadPoolDemo.java:13)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)

submit:

import org.junit.Test;
 
import java.util.concurrent.*;
 
public class ThreadPoolDemo {
 
    @Test
    public void test() throws InterruptedException, ExecutionException {
        //創(chuàng)建線程池對象
        ExecutorService singleThreadExecutor = Executors.newSingleThreadExecutor();
        singleThreadExecutor.submit(() -> {
            System.out.println("開始");
            int i = 10 / 0;
            System.out.println("結(jié)束");
        });
    }
}

輸出:

開始

submit 增加Future的get方法

import org.junit.Test;
 
import java.util.concurrent.*;
 
public class ThreadPoolDemo {
    @Test
    public void test() throws InterruptedException, ExecutionException {
        //創(chuàng)建線程池對象
        ExecutorService singleThreadExecutor = Executors.newSingleThreadExecutor();
        Future future=singleThreadExecutor.submit(() -> {
            System.out.println("開始");
            int i = 10 / 0;
            System.out.println("結(jié)束");
        });
        Object o=future.get();
        singleThreadExecutor.shutdown();
    }
}
 

輸出:

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

吉隆县| 丰都县| 怀宁县| 安岳县| 安西县| 海原县| 东丽区| 峨眉山市| 长沙市| 昌平区| 永安市| 古田县| 南康市| 高台县| 阿合奇县| 巩义市| 永州市| 富平县| 泰和县| 通山县| 白水县| 鄂伦春自治旗| 靖边县| 涞源县| 木里| 林西县| 西青区| 泽普县| 鹤庆县| 双峰县| 平谷区| 嘉峪关市| 铁岭市| 韩城市| 长泰县| 文安县| 湄潭县| 阳高县| 肥东县| 镇雄县| 泰和县|