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

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

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

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

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

excute:

submit:

2、異常拋出不同

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

execute:

import org.junit.Test;
 
import java.util.concurrent.*;
 
public class ThreadPoolDemo {
 
    @Test
    public void test() throws InterruptedException, ExecutionException {
        //創(chuàng)建線程池對(duì)象
        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)建線程池對(duì)象
        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)建線程池對(duì)象
        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é)

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

相關(guān)文章

最新評(píng)論

乌审旗| 八宿县| 赤水市| 桓仁| 莱芜市| 瓮安县| 嘉祥县| 玉树县| 东宁县| 古浪县| 临城县| 两当县| 临潭县| 吉水县| 嘉峪关市| 长治市| 开阳县| 运城市| 曲周县| 安塞县| 同仁县| 普兰店市| 聂荣县| 乌拉特后旗| 柏乡县| 攀枝花市| 调兵山市| 吉木乃县| 安新县| 海伦市| 台湾省| 中阳县| 武穴市| 杭锦旗| 安仁县| 沿河| 广水市| 永吉县| 洞头县| 沛县| 乌兰察布市|