前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Callable 实现线程操作的第三种操作

Callable 实现线程操作的第三种操作

作者头像
名字是乱打的
发布2022-05-13 12:29:02
1550
发布2022-05-13 12:29:02
举报
文章被收录于专栏:软件工程

demo

代码语言:javascript
复制
package jucTest;

import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;

class  CallAbleReource implements Callable<Integer> {

    @Override
    public Integer call() throws Exception {
        System.out.println("**进callable了  啦啦啦啦");
        return 1024;
    }
}
public class CallAble {
    public static void main(String[] args) throws ExecutionException, InterruptedException {
        FutureTask<Integer> futureTask= new FutureTask<Integer>(new CallAbleReource());
        Thread thread=new Thread(futureTask,"FutureTask测试");
        thread.start();
        System.out.println("FutureTesk运行得到"+futureTask.get());


    }
}

描述 Callable接口本身不带有启动方法,我们需要利用FutureTesk

代码语言:javascript
复制
public class FutureTask<V> implements RunnableFuture<V>

FutureTask类实现了RunnableFuture接口,我们看一下RunnableFuture接口的实现

代码语言:javascript
复制
public interface RunnableFuture<V> extends Runnable, Future<V> {
    void run();
}

可以看出RunnableFuture继承了Runnable接口和Future接口,而FutureTask实现了RunnableFuture接口。所以它可以作为Runnable被线程执行,可以作为Future得到Callable的返回值。

FutureTask提供了2个构造器:

代码语言:javascript
复制
public FutureTask(Callable<V> callable) {
}
public FutureTask(Runnable runnable, V result) {
}

事实上,FutureTask是Future接口的一个唯一实现类。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档