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 }