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

java多線程返回值使用示例(callable與futuretask)

 更新時(shí)間:2014年04月11日 09:22:06   作者:  
這篇文章主要介紹了多線程返回值使用示例(callable與futuretask),需要的朋友可以參考下

Callable接口類(lèi)似于Runnable,從名字就可以看出來(lái)了,但是Runnable不會(huì)返回結(jié)果,并且無(wú)法拋出返回結(jié)果的異常,而Callable功能更強(qiáng)大一些,被線程執(zhí)行后,可以返回值,這個(gè)返回值可以被Future拿到,也就是說(shuō),F(xiàn)uture可以拿到異步執(zhí)行任務(wù)的返回值,下面來(lái)看一個(gè)簡(jiǎn)單的例子

復(fù)制代碼 代碼如下:

package com.future.test;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.FutureTask;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;

public class MyTest {

 // 接收在run方法中捕獲的異常,然后自定義方法拋出異常
    //private static Throwable exception;
 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  String result = "";
  ExecutorService executor = Executors.newSingleThreadExecutor(); 
  FutureTask<String> future = 
         new FutureTask<String>(new Callable<String>() {//使用Callable接口作為構(gòu)造參數(shù) 
           public String call() { 
             //真正的任務(wù)在這里執(zhí)行,這里的返回值類(lèi)型為String,可以為任意類(lèi)型
            try {
      Thread.sleep(10000);
     } catch (InterruptedException e) {
      // TODO Auto-generated catch block
      //exception = e;
      //e.printStackTrace();
     }
           return "11111";
         }}); 
  executor.execute(future); 
  //在這里可以做別的任何事情 
  try { 
      result = future.get(5000, TimeUnit.MILLISECONDS); //取得結(jié)果,同時(shí)設(shè)置超時(shí)執(zhí)行時(shí)間為5秒。同樣可以用future.get(),不設(shè)置執(zhí)行超時(shí)時(shí)間取得結(jié)果 
  } catch (InterruptedException e) {
   //System.out.println("任務(wù)已經(jīng)取消");
   future.cancel(true); 
  } catch (ExecutionException e) { 
   future.cancel(true); 
  } catch (TimeoutException e) { 
   future.cancel(true); 
  } finally { 
      executor.shutdown(); 
  } 
  System.out.println("result:"+result);
 }

 /* public void throwException() throws FileNotFoundException, IOException {
         if (exception instanceof FileNotFoundException)
             throw (FileNotFoundException) exception;
         if (exception instanceof IOException)
             throw (IOException) exception;
     }*/


}

相關(guān)文章

  • Spring?Boot?整合JPA?數(shù)據(jù)模型關(guān)聯(lián)使用操作(一對(duì)一、一對(duì)多、多對(duì)多)

    Spring?Boot?整合JPA?數(shù)據(jù)模型關(guān)聯(lián)使用操作(一對(duì)一、一對(duì)多、多對(duì)多)

    這篇文章主要介紹了Spring?Boot?整合JPA?數(shù)據(jù)模型關(guān)聯(lián)操作(一對(duì)一、一對(duì)多、多對(duì)多),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • Java中Thread.join()的使用方法

    Java中Thread.join()的使用方法

    這篇文章主要介紹了Java中Thread.join()的使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • springboot注冊(cè)bean的三種方法

    springboot注冊(cè)bean的三種方法

    這篇文章主要介紹了springboot注冊(cè)bean的三種方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02
  • SpringData JPA實(shí)體映射與關(guān)系映射的實(shí)現(xiàn)

    SpringData JPA實(shí)體映射與關(guān)系映射的實(shí)現(xiàn)

    Spring Data JPA作為Spring生態(tài)系統(tǒng)中的核心項(xiàng)目,通過(guò)JPA規(guī)范提供了優(yōu)雅而強(qiáng)大的實(shí)體映射與關(guān)系處理機(jī)制,下面就來(lái)介紹一下,感興趣的可以了解一下
    2025-04-04
  • Java中使用MongoDB數(shù)據(jù)庫(kù)實(shí)例Demo

    Java中使用MongoDB數(shù)據(jù)庫(kù)實(shí)例Demo

    MongoDB是由C++語(yǔ)言編寫(xiě)的,基于分布式文件存儲(chǔ)的數(shù)據(jù)庫(kù),是一個(gè)介于關(guān)系數(shù)據(jù)庫(kù)和非關(guān)系數(shù)據(jù)庫(kù)之間的產(chǎn)品,是最接近于關(guān)系型數(shù)據(jù)庫(kù)的NoSQL數(shù)據(jù)庫(kù),下面這篇文章主要給大家介紹了關(guān)于Java中使用MongoDB數(shù)據(jù)庫(kù)的相關(guān)資料,需要的朋友可以參考下
    2023-12-12
  • Spring Boot使用AOP防止重復(fù)提交的方法示例

    Spring Boot使用AOP防止重復(fù)提交的方法示例

    這篇文章主要介紹了Spring Boot使用AOP防止重復(fù)提交的方法示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-05-05
  • Java中的輸出格式化問(wèn)題小結(jié)

    Java中的輸出格式化問(wèn)題小結(jié)

    在Java中,System.out.printf方法用于格式化輸出,格式化字符串`%.6f`表示浮點(diǎn)數(shù)保留6位小數(shù),其他格式化選項(xiàng)包括`%d`(整數(shù))、`%s`(字符串)和`%e`(科學(xué)計(jì)數(shù)法),示例代碼展示了如何使用這些格式化選項(xiàng),感興趣的朋友一起看看吧
    2025-02-02
  • Javax Validation自定義注解進(jìn)行身份證號(hào)校驗(yàn)

    Javax Validation自定義注解進(jìn)行身份證號(hào)校驗(yàn)

    這篇文章主要為大家詳細(xì)介紹了如何通過(guò)Javax Validation自定義注解進(jìn)行身份證號(hào)校驗(yàn),文中的示例代碼講解詳細(xì),有需要的小伙伴可以參考一下
    2024-10-10
  • jdk15的安裝與配置全過(guò)程記錄

    jdk15的安裝與配置全過(guò)程記錄

    這篇文章主要給大家介紹了關(guān)于jdk15的安裝與配置,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • JAVA如何使用Math類(lèi)操作數(shù)據(jù)

    JAVA如何使用Math類(lèi)操作數(shù)據(jù)

    這篇文章主要介紹了JAVA如何使用Math類(lèi)操作數(shù)據(jù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04

最新評(píng)論

自贡市| 汤原县| 遂昌县| 吕梁市| 同德县| 枣强县| 石门县| 云龙县| 嘉义县| 扎囊县| 图片| 通山县| 承德县| 上蔡县| 翼城县| 商都县| 莱州市| 大丰市| 循化| 汾阳市| 定南县| 通化市| 本溪市| 文山县| 建德市| 湘阴县| 乡宁县| 方城县| 于田县| 元氏县| 溧阳市| 许昌市| 犍为县| 沙坪坝区| 梅河口市| 沾益县| 唐山市| 山丹县| 马关县| 承德市| 改则县|