JavaSE---线程-Callable 与 Future

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
/**
     * 【Callable 与 Future】
     *      JDK5开始,Java提供了 Callable接口,Callable接口有个call方法可以作为线程体,
     *          public interface Runnable {
     *              public abstract void run();
     *          }
     *
     *          public interface Callable<V> {
     *              V call() throws Exception;
     *          }
     *
     *          Callable的call方法 与 Runnable的run方法 比较:
     *              1、call方法有返回值;
     *              2、call方法可以声明抛出异常;
     *
     *     Callable接口不是 Runnable的实现类,不能作为 Thread的target;
     *
     *     JDK5提供了 Future接口 代表 Callable接口的call方法的 返回值;
     *          public interface Future<V> {
     *              // 返回Callable任务的call方法的返回值,将导致 当前线程阻塞,直到子线程结束得到返回值;
     *              V get() throws InterruptedException, ExecutionException;
     *          }
     *
     *     JDK5提供了 FutureTask类,FutureTask实现了Future接口 且 实现了Runnable接口, FutureTask可以作为Thread的target;
     *          public class FutureTask<V> implements RunnableFuture<V> {
     *              private Callable<V> callable;
     *
     *              public void run() {}
     *          }
     *
     *
     */
 
 
 
    public static void main(String[] args) throws ExecutionException, InterruptedException {
 
 
        FutureTask futureTask = new FutureTask(new MyCallable());
        Thread thread = new Thread(futureTask);
        thread.start();
 
        Object o = futureTask.get();
        System.out.println(o);
 
    }
 
    static class MyCallable implements Callable<String>{
        @Override
        public String call() throws Exception {
            return "MyCallable.call ...";
        }
    }

  

posted on   anpeiyong  阅读(19)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2019-03-02 SQL---MySQL数据库---聚合函数
2019-03-02 SQL---MySQL数据库---试炼

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示