this

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 }

 

 

posted @ 2014-09-13 21:03  湖南司马懿  Views(153)  Comments(0Edit  收藏  举报