一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - java多線程返回值使用示例(callable與futuretask)

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

2019-11-18 14:39Java教程網 JAVA教程

這篇文章主要介紹了多線程返回值使用示例(callable與futuretask),需要的朋友可以參考下

Callable接口類似于Runnable,從名字就可以看出來了,但是Runnable不會返回結果,并且無法拋出返回結果的異常,而Callable功能更強大一些,被線程執行后,可以返回值,這個返回值可以被Future拿到,也就是說,Future可以拿到異步執行任務的返回值,下面來看一個簡單的例子

 

復制代碼代碼如下:


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接口作為構造參數  
           public String call() {  
             //真正的任務在這里執行,這里的返回值類型為String,可以為任意類型
            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); //取得結果,同時設置超時執行時間為5秒。同樣可以用future.get(),不設置執行超時時間取得結果  
  } catch (InterruptedException e) { 
   //System.out.println("任務已經取消");
   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;
     }*/


}

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美亚洲国产精品久久第一页 | 日本大尺度激情做爰叫床 | 亚洲精品国产A久久久久久 亚洲精品福利一区二区在线观看 | 美女逼逼软件 | 小苹果日本在线观看 | 亚洲精品午夜级久久久久 | 白丝出水 | brazzers欧美教师 | 精品视频在线播放 | 变态 调教 视频 国产九色 | 草莓视频深夜释放 | 国产精品一久久香蕉产线看 | 亚洲精品久久中文字幕 | 风间由美在线播放 | 久久精品亚洲精品国产欧美 | 99久久免费视频 | 精品一久久香蕉国产线看播放 | 下雨天小说词枝 | 欧美一级视频免费观看 | 丝瓜污污视频 | 久久亚洲精品AV无码四区 | 欧美亚洲第一区 | 亚洲国产韩国欧美在线不卡 | 亚洲高清在线视频 | 精品视频入口 | 欧美一级特黄特色大片 | 九九精品免视频国产成人 | 小早川怜子息梦精在线播放 | 万域之王动漫在线观看全集免费播放 | 国产91素人搭讪系列天堂 | 描写细腻的高h肉 | 日韩欧美视频二区 | 91制片厂制作传媒网站破解 | 亚洲精品91大神在线观看 | 第一次不是你高清在线观看 | 国产经典一区 | 亚洲成年男人的天堂网 | 我被男人下药添得好爽 | 日韩欧美亚洲一区二区综合 | 四虎影视国产精品婷婷 | 风间由美在线播放 |