欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

1、參數及返回值不同

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

excute:

submit:

2、異常拋出不同

  • execute執(zhí)行任務時遇到異常會直接拋出
  • submit執(zhí)行任務是遇到異常不會直接拋出,只有在使用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("結束");
        });
    }
}

輸出:

開始
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("結束");
        });
    }
}

輸出:

開始

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("結束");
        });
        Object o=future.get();
        singleThreadExecutor.shutdown();
    }
}
 

輸出:

總結

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

相關文章

  • springboot 在ftl頁面上使用shiro標簽的實例代碼

    springboot 在ftl頁面上使用shiro標簽的實例代碼

    這篇文章主要介紹了springboot 在ftl頁面上使用shiro標簽的實例代碼,通過文字說明結合實例的形式給大家介紹的非常詳細,需要的朋友參考下吧
    2018-05-05
  • Spring Cloud下OAUTH2注銷的實現示例

    Spring Cloud下OAUTH2注銷的實現示例

    本篇文章主要介紹了Spring Cloud下OAUTH2注銷的實現示例,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • MyBatis-Plus自定義通用的方法實現

    MyBatis-Plus自定義通用的方法實現

    MP自帶的條件構造器雖然很強大,有時候也避免不了寫稍微復雜一點業(yè)務的sql,本文主要介紹了MyBatis-Plus自定義通用的方法實現,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-05-05
  • servlet之session工作原理簡介_動力節(jié)點Java學院整理

    servlet之session工作原理簡介_動力節(jié)點Java學院整理

    這篇文章主要介紹了servlet之session工作原理簡介,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • Java中JUC?的?Exchange?交換器詳情

    Java中JUC?的?Exchange?交換器詳情

    這篇文章主要介紹了Java中JUC?的?Exchange?交換器詳情,文章基于Java的相關資料展開詳細的內容介紹,需要的小伙伴可以參考一下
    2022-05-05
  • SpringBoot統(tǒng)一功能處理的方式詳解

    SpringBoot統(tǒng)一功能處理的方式詳解

    這篇文章主要為大家詳細介紹了SpringBoot統(tǒng)一功能處理的方式,文中的示例代碼講解詳細,對我們學習或工作有一定借鑒價值,需要的可以參考一下
    2022-08-08
  • SpringBoot解析JSON數據的三種方案

    SpringBoot解析JSON數據的三種方案

    JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式,易于人閱讀和編寫,同時也易于機器解析和生成,本文給大家介紹了SpringBoot解析JSON數據的三種方案,需要的朋友可以參考下
    2024-03-03
  • SpringBoot配置MyBatis-Plus實現增刪查改

    SpringBoot配置MyBatis-Plus實現增刪查改

    本文主要介紹了SpringBoot配置MyBatis-Plus實現增刪查改,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Spring Boot監(jiān)聽Redis Key失效事件實現定時任務的示例

    Spring Boot監(jiān)聽Redis Key失效事件實現定時任務的示例

    這篇文章主要介紹了Spring Boot監(jiān)聽Redis Key失效事件實現定時任務的示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04
  • java顯示當前美國洛杉磯時間

    java顯示當前美國洛杉磯時間

    這篇文章主要介紹了java顯示當前美國洛杉磯時間的方法,也就是當前時間的切換,需要的朋友可以參考下
    2014-02-02

最新評論