当前位置: 首页 > article >正文

55-java多线程future

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() 方法时,如果任务尚未完成,调用线程会等待直到任务完成。


http://www.kler.cn/a/286416.html

相关文章:

  • C#面试常考随笔4:int? 和 int的区别,以及int?的运用场景?
  • LitGPT - 20多个高性能LLM,具有预训练、微调和大规模部署的recipes
  • 我是如何写作的?
  • dify实现原理分析-rag-检索(Retrieval)服务的实现
  • JavaScript函数中this的指向
  • 解决Oracle SQL语句性能问题(10.5)——常用Hint及语法(7)(其他Hint)
  • 【Go函数详解】三、匿名函数和闭包
  • Java算法之计数排序(Counting Sort)
  • Jenkins安装使用详解,jenkins实现企业级CICD流程
  • 解除 Excel 表格的文档保护全攻略
  • OceanbaseV4模拟题解析
  • C语言典型例题58
  • Java的动态代理(实际案例秒懂!)
  • 【Unity】简单机甲运动系统——坦克式操控方式
  • 前后端分离的security角色权限实现
  • 在 macOS 上升级 Ruby 版本的几种方法
  • Linux 常用命令 - hexdump 【以指定格式显示文件内容】
  • 【UE5】控件蓝图——树视图(TreeView)的基本使用
  • 2024国赛数学建模备战:灰色预测,国赛数学建模思路代码 模型
  • hive学习(六)
  • 【大模型】GPT系列模型基础
  • 讯鹏科技智慧公厕专业供应商,解读智慧公厕有哪些奥秘
  • 【Spring Boot 3】【Web】文件下载
  • 盘点2024年4款可以免费使用的视频压缩软件。
  • 如何打造Java SpringBoot宿舍设备管理系统,全程跟踪设备使用周期,2025最新设计指南
  • 量化投资策略与技术学习PART8:量化选股之趋势追踪