Callable 和 Future

1090阅读 0评论2015-07-23 woxin317
分类:Java


通过 Future可以获取 Callable 返回的结果
 future.get() 可以阻塞线程,使线程等待结果。

点击(此处)折叠或打开

  1. package cn.itcast.heima2;

  2. import java.util.Random;
  3. import java.util.concurrent.Callable;
  4. import java.util.concurrent.CompletionService;
  5. import java.util.concurrent.ExecutionException;
  6. import java.util.concurrent.ExecutorCompletionService;
  7. import java.util.concurrent.ExecutorService;
  8. import java.util.concurrent.Executors;
  9. import java.util.concurrent.Future;
  10. import java.util.concurrent.TimeUnit;



  11. public class CallableAndFuture {

  12.     /**
  13.      * @param args
  14.      */
  15.     public static void main(String[] args) {
  16.         ExecutorService threadPool = Executors.newSingleThreadExecutor();
  17.         Future<String> future =
  18.             threadPool.submit(
  19.                 new Callable<String>() {
  20.                     public String call() throws Exception {
  21.                         Thread.sleep(2000);
  22.                         return "hello";
  23.                     };
  24.                 }
  25.         );
  26.         System.out.println("等待结果");
  27.         try {
  28.             System.out.println("拿到结果:" + future.get());
  29.         } catch (InterruptedException e) {
  30.             // TODO Auto-generated catch block
  31.             e.printStackTrace();
  32.         } catch (Exception e) {
  33.             // TODO Auto-generated catch block
  34.             e.printStackTrace();
  35.         }
  36.         
  37.       
  38.     

  39. }

上一篇:会话技术(Cookie和Session)概述
下一篇:没有了