• Java Callable and Future


     1 package concurrency.callable;
     2 
     3 import java.util.concurrent.Callable;
     4 
     5 /**
     6  * <pre>
     7  * Callable 与 Future 是为了适应 jdk1.6多并发产生的
     8  * Callable 与 Runnable接口 
     9  * 共同 :
    10  *     1.都是一种任务,被其他线程调度的任务
    11  * 区别 :
    12  *     1.Callable 用的是Call ,Runnable用的是run
    13  *     2.call可以throw Excepiton ,run 不行
    14  *     3.call 可以返回东西,run 不行
    15  * </pre>
    16  * 
    17  * @author yicai.liu
    18  * @param <V>
    19  */
    20 public class MyCallable<V> implements Callable<V>
    21 {
    22 
    23     @Override
    24     public V call() throws Exception
    25     {
    26         return null;
    27     }
    28 
    29 }

     1 package concurrency.future;
     2 
     3 import java.util.concurrent.ExecutionException;
     4 import java.util.concurrent.Future;
     5 import java.util.concurrent.TimeUnit;
     6 import java.util.concurrent.TimeoutException;
     7 
     8 /**
     9  * <pre>
    10  * Future 接口用处
    11  * 1 探测 异步 执行的结果  V get() ,等待计算,直到完成,获取结果
    12  * 2 检查计算是否完成 isDone()
    13  * 3 取消任务的执行   cancel(1 true/ 2 false) [true : 暴力中断任务执行  / false :允许正在执行的任务完成]
    14  * </pre>
    15  * 
    16  * @author yicai.liu
    17  * @param <V>
    18  */
    19 public class MyFuture<V> implements Future<V>
    20 {
    21     @Override
    22     public boolean cancel(boolean mayInterruptIfRunning)
    23     {
    24         return false;
    25     }
    26 
    27     @Override
    28     public boolean isCancelled()
    29     {
    30         return false;
    31     }
    32 
    33     @Override
    34     public boolean isDone()
    35     {
    36         return false;
    37     }
    38 
    39     @Override
    40     public V get() throws InterruptedException, ExecutionException
    41     {
    42         return null;
    43     }
    44 
    45     @Override
    46     public V get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException
    47     {
    48         return null;
    49     }
    50 
    51 }
  • 相关阅读:
    【个人博客设计】
    复杂多边形光栅化算法
    xmake 描述语法和作用域详解
    协程分析之context上下文切换
    tbox协程使用之切换与等待
    记boost协程切换bug发现和分析
    跨平台自动构建工具v1.0.2 发布
    xmake从入门到精通9:交叉编译详解
    xmake从入门到精通9:交叉编译详解
    跨平台c开发库tbox:内存库使用详解
  • 原文地址:https://www.cnblogs.com/33blog/p/3970341.html
Copyright © 2020-2023  润新知