55-java多线程future

admin2024-08-31  3

java多线程future

在Java中,Future 接口和 Callable 函数式接口一起被用来支持异步计算。Future 表示一个可能完成的异步计算的结果,通过 get 方法可以获取计算的结果。

下面是一个使用 Future 的简单示例:

import java.util.concurrent.*;
 
public class FutureExample {
    public static void main(String[] args) throws ExecutionException, InterruptedException {
        ExecutorService executor = Executors.newSingleThreadExecutor();
 
        // 提交任务并获取Future对象
        Future<Integer> future = executor.submit(new Callable<Integer>() {
            @Override
            public Integer call() throws Exception {
                // 模拟耗时计算
                Thread.sleep(2000);
                return 123;
            }
        });
 
        // 在这里可以做其他任务
        System.out.println("做其他任务...");
 
        // 获取计算结果,如果计算未完成则会阻塞
        Integer result = future.get();
        System.out.println("计算结果: " + result);
 
        // 关闭ExecutorService
        executor.shutdown();
    }
}

在这个例子中,我们创建了一个 ExecutorService 来执行异步任务,使用 submit 方法提交了一个 Callable 任务。Future 对象可以用来查询任务是否完成,并获取计算结果。当我们调用 future.get() 方法时,如果任务尚未完成,调用线程会等待直到任务完成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明原文出处。如若内容造成侵权/违法违规/事实不符,请联系SD编程学习网:675289112@qq.com进行投诉反馈,一经查实,立即删除!