news 2026/6/9 9:11:23

使用 Callable 和 Future 创建线程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
使用 Callable 和 Future 创建线程

实际上,使用 Callable 和 Future 创建线程,从 Java 5 开始,Java 提供了 Callable 接口,该接口怎么看都像是 Runnable 接口的增强版,Callable 接口提供了一个 call () 方法可以作为线程执行体,但 call () 方法比 run () 方法功能更强大。

以下是一个使用 Callable 和 Future 创建线程的 Java 多线程代码示例:

import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; public class CallableExample { public static void main(String[] args) throws InterruptedException, ExecutionException { ExecutorService executor = Executors.newSingleThreadExecutor(); // 创建线程池 Callable<String> callable = new MyCallable(); // 创建Callable任务 Future<String> future = executor.submit(callable); // 提交任务并获取Future对象 System.out.println("等待任务执行结果..."); String result = future.get(); // 获取任务执行结果,这是一个阻塞方法,直到任务执行完成才会返回结果 System.out.println("任务执行结果:" + result); executor.shutdown(); // 关闭线程池 } } class MyCallable implements Callable<String> { @Override public String call() throws Exception { Thread.sleep(3000); // 模拟耗时操作 return "Hello, World!"; } }

在这个示例中,我们创建了一个 Callable 任务( MyCallable ),并将其提交给一个线程池( ExecutorService )。线程池会返回一个 Future 对象,我们可以使用它来获取任务的执行结果。在主线程中,我们调用 Future 对象的 get 方法来获取结果,这是一个阻塞方法,直到任务执行完成才会返回结果。最后,我们关闭线程池。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 9:10:12

NCMconverter终极指南:3步解锁网易云音乐ncm格式限制

NCMconverter终极指南&#xff1a;3步解锁网易云音乐ncm格式限制 【免费下载链接】NCMconverter NCMconverter将ncm文件转换为mp3或者flac文件 项目地址: https://gitcode.com/gh_mirrors/nc/NCMconverter 你是否遇到过从网易云音乐下载的歌曲在其他播放器无法播放的困扰…

作者头像 李华
网站建设 2026/6/9 9:05:50

Java写的CloudWatch指标导出器,让Prometheus轻松采集AWS监控数据

本文还有配套的精品资源&#xff0c;点击获取 简介&#xff1a;一个用Java开发的轻量级工具&#xff0c;能把AWS CloudWatch里的各种监控指标&#xff08;比如EC2 CPU使用率、RDS连接数、Lambda调用次数等&#xff09;实时转换成Prometheus能直接抓取的格式。支持Java 8&…

作者头像 李华
网站建设 2026/6/9 9:05:26

别再到处找安装包了!手把手教你从官网下载并配置IDEA 2021.3.2社区版(附学生认证白嫖激活码方法)

从零开始安全获取IDEA&#xff1a;官网下载、配置优化与学生认证全指南 第一次打开JetBrains官网时&#xff0c;我被满屏的英文和专业术语吓到了——哪个才是真正的下载按钮&#xff1f;Community版和Ultimate版有什么区别&#xff1f;为什么同学能用高级功能而我只能看到灰色…

作者头像 李华