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

实现Callable接口(了解即可)

1. 实现Callable接口,需要返回值类型

2.重写call方法,需要抛出异常

3.创建目标对象

4.创建执行服务:ExecutorService ser = Executors.newFixedThreadPool(1);

5.提交执行:Future<Boolean> result1= ser.submit(t1);

6.获取结果:boolean r1 = result1.get()

7.关闭服务:ser.shutdownNow();

利用callable改造下载图片案例:

//线程创建方法三:实现Callable接口
public class TestCallable implements Callable<Boolean> {private String url;//网络图片地址private String name;//保存文件名public TestCallable(String url, String name){this.url = url;this.name =name;}//下载图片线程的执行体@Overridepublic Boolean call() {WeDownloader weDownloader = new WeDownloader();weDownloader.downloader(url,name);System.out.println("下载了文件名为:" + name);return true;}public static void main(String[] args) throws ExecutionException, InterruptedException {TestCallable t1 = new TestCallable("https://i-blog.csdnimg.cn/direct/71122db47a024d05b50daedfac6221d4.png", "4.png");TestCallable t2 = new TestCallable("https://i-blog.csdnimg.cn/img_convert/aa841f7c7d7d281d1d012d9a06a31d53.jpeg", "5.jpeg");TestCallable t3 = new TestCallable("https://i-blog.csdnimg.cn/direct/0e2270afec474c88bcb7e5d721c79011.jpeg", "6.jpeg");//创建执行服务:ExecutorService ser = Executors.newFixedThreadPool(3);//提交执行:Future<Boolean> r1= ser.submit(t1);Future<Boolean> r2= ser.submit(t2);Future<Boolean> r3= ser.submit(t3);//获取结果:boolean rs1 = r1.get();boolean rs2 = r2.get();boolean rs3 = r3.get();//关闭服务:ser.shutdownNow();}
}class WeDownloader{//下载方法public void downloader(String url,String name){try {FileUtils.copyURLToFile(new URL(url),new File(name));} catch (IOException e) {e.printStackTrace();System.out.println("IO异常,downloader方法出现问题");}}}
http://www.dtcms.com/a/531791.html

相关文章:

  • 从入门到实操:贝叶斯分析完整技术步骤与核心R包指南
  • 做理财的网站有哪些内容长春一般建一个网站需要多少钱
  • C#开发后端:API 控制器(Controller)
  • 建湖人才网招工湛江怎么做网站关键词优化
  • 深入理解 Flink SQL 状态:原理、应用与优化
  • Product Hunt 每日热榜 | 2025-10-26
  • Java的语法与Python进行对比学习
  • 【MCAL实战】CanTrcv模块配置实践
  • coco 可视化 txt版
  • idea字体的问题(idea应用本身的字体问题)
  • 计算机操作系统 — 链接
  • 网站图片加altwordpress前端库加速
  • 在linux上使用docker搭建ELK日志框架
  • Docker 应该如何学习 分四个阶段
  • 面试过程中的扣分项,你踩过几个?
  • 中牟高端网站建设专做户外装备测评视频网站
  • CSS属性(二)
  • 2011年下半年试题四:论软件需求获取技术及应用
  • Mujoco 仿真 PPO 强化学习机械臂末端路径规划到达指定位置(代码讲解)
  • 【C#】EventHandler的使用
  • C++ 实际应用系列(第六部分):并发系统的性能优化与工程实践(完)
  • 上市公司网站建设分析wordpress 转 app
  • Prometheus+Grafana 智能监控告警系统(服务器指标采集、mysql指标采集)
  • html5电影网站如何做企业网站流量怎么做
  • <数据集>yolo煤矿安全帽识别数据集<目标检测>
  • excel中加载数据分析工具的步骤
  • 一文厘清:文库 vs 知识库、核心功能清单、开源方案对比
  • 图片转excel vlm 提取手写清单信息 Qwen/Qwen3-VL-235B-A22B-Instruct
  • webrtc代码走读(七)-QOS-FEC-ulpfec rfc5109
  • 第十五章认识Ajax(六)