首页  

FutureTask简介     所属分类 java 浏览量 68
FutureTask 实现了RunnableFuture接口 
RunnableFuture继承了Runnable和Future接口
既可以作为Runnable被线程执行,又可以作为Future得到Callable的返回值

FutureTask 使用线程或提交到线程池执行
get方法获取结果


import java.time.LocalDateTime;
import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;

public class FutureTaskAndThreadTest {
    public static void main(String[] args) throws Exception {
        FutureTask<String> futureTask = new FutureTask<String>(new MyTask());
        // futureTask 使用线程或提交到线程池执行
        // System.out.println(futureTask.get());
        Thread thread = new Thread(futureTask);
        thread.start();
        System.out.println("futureTask thread start " + LocalDateTime.now());
        String result = futureTask.get();
        System.out.println("futureTask result=" + result + "," + LocalDateTime.now());
    }

    private static class MyTask implements Callable<String> {
        public String call() throws Exception {
            Thread.sleep(1000);
            return LocalDateTime.now().toString();
        }
    }
}



例子代码 https://gitee.com/dyyx/hellocode/blob/master/src/dyyx/conc/FutureTaskTest.java https://gitee.com/dyyx/hellocode/blob/master/src/dyyx/conc/FutureTaskAndThreadTest.java
线程池实例之提交返回类型不同的任务 Runnable Callable Future FutureTask

上一篇     下一篇
能源化工ETF 159981

马斯洛需求层次理论

线程池实例之提交返回类型不同的任务

框架效应

正态分布和幂律分布

javascript json 格式化