【JUC编程】线程的创建(三)
2021/4/11 20:26:04
本文主要是介绍【JUC编程】线程的创建(三),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
创建步骤:
- 实现Callable接口,
需要返回值类型
- 重写call方法,需要抛出异常
- 创建目标对象
- 执行创建任务:ExecutorService ser=Executor.newFixedThreadPool(1);
- 提交执行:Future result=ser.submit(t1);
- 获取结果:boolean r=result.get()
- 关闭服务:ser.shutdownNow();
入门案例:
从网络下载图片:
package Callable; import org.apache.commons.io.FileUtils; import java.io.File; import java.io.IOException; import java.net.URL; import java.util.concurrent.*; /** * @author jitwxs * @date 2021年04月11日 19:36 */ public class CallableTest implements Callable<Boolean> { @Override public Boolean call() throws Exception { WebDownloader webDownloader=new WebDownloader(); webDownloader.downloader(url,name); System.out.println("下载的文件名为:"+name); return true; } private String url;//网络图片地址 private String name;//保存的文件名 public CallableTest(String url, String name) { this.url = url; this.name = name; } public static void main(String[] args) throws Exception{ CallableTest d1=new CallableTest("https://profile.csdnimg.cn/8/4/3/1_m0_46495243","1.jpg"); CallableTest d2=new CallableTest("https://imgcdn.toutiaoyule.com/20210407/20210407134042114529a_t.jpeg","2.jpeg"); CallableTest d3=new CallableTest("https://lupic.cdn.bcebos.com/20191206/2001330442%2318.jpg","3.jpg"); ExecutorService ser= Executors.newFixedThreadPool(3); Future<Boolean> result1=ser.submit(d1); Future<Boolean> result2=ser.submit(d2); Future<Boolean> result3=ser.submit(d3); boolean r1=result1.get(); boolean r2=result2.get(); boolean r3=result3.get(); ser.shutdownNow(); } } //下载器 class WebDownloader{ //下载方法 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,Download方法"); } } }
- 结果
这篇关于【JUC编程】线程的创建(三)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-29uni-app 中使用 Vant Weapp,怎么安装和配置npm ?-icode9专业技术文章分享
- 2024-12-27Nacos多环境配置学习入门
- 2024-12-27Nacos快速入门学习入门
- 2024-12-27Nacos快速入门学习入门
- 2024-12-27Nacos配置中心学习入门指南
- 2024-12-27Nacos配置中心学习入门
- 2024-12-27Nacos做项目隔离学习入门
- 2024-12-27Nacos做项目隔离学习入门
- 2024-12-27Nacos初识学习入门:轻松掌握服务发现与配置管理
- 2024-12-27Nacos初识学习入门:轻松掌握Nacos基础操作