Java多线程Callable接口实现代码示例
发布时间:2020-12-14 21:19:30 所属栏目:Java 来源:网络整理
导读:对于多线程,大家并不陌生,对于如何创建线程也是轻车熟路,对于使用new thread和实现runable接口的方式,不再多说。这篇博文我们介绍第三种:实现Callable接口。 Callable接口 接口定义: @FunctionalInterfacepublic interface CallableV { V call() throw
对于多线程,大家并不陌生,对于如何创建线程也是轻车熟路,对于使用new thread和实现runable接口的方式,不再多说。这篇博文我们介绍第三种:实现Callable接口。 Callable接口 接口定义: @FunctionalInterface public interface Callable<V> { V call() throws Exception; } 从Callable的定义可以看出: Callable接口类似于Runnable,两者都是为那些其实例可能被另一个线程执行的类设计的,方法可以有返回值,并且可以抛出异常。但是Runnable不行。 Callable需要依赖FutureTask,用于接收运算结果。一个产生结果,一个拿到结果。FutureTask是Future接口的实现类,也可以用作闭锁。 简单实例 计算0到100相加,返回结果。 public class TestCallable { public static void main(String[] args) { CallableThreadDemo ctd = new CallableThreadDemo(); //1.执行Callable方式,需要FutureTask实现类的支持,用于接收运算结果 FutureTask<Integer> result = new FutureTask<Integer>(ctd); new Thread(result).start(); //2.接收线程运算后的结果 try { Integer sum = result.get(); //FutureTask 可用于闭锁 System.out.println(sum); } catch (InterruptedException | ExecutionException e) { e.printStackTrace(); } } } class CallableThreadDemo implements Callable<Integer>{ @Override public Integer call() throws Exception { int sum = 0; for (int i = 0; i <= 100; i++) { sum += i; } return sum; } } 总结 Callable接口其实特别简单,在多线程环境中,返回结果。 希望本文所述对大家了解多线程及callable接口有所帮助。感兴趣的朋友可以继续参阅本站:浅谈Java面向接口编程、Java编程接口回调一般用法代码解析等。感谢大家对本站的支持! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Android获得WIFI IP地址或者手机网络IP
- java开发_mysql中获取数据库表描述_源码下载
- RobotFramework安装指南
- Glossary of Terms in the JavaTM platform --reference
- java – 约束两个作业不能在Quartz-Scheduler中同时运行
- VS Code Remote,在服务器上开发程序,开启全新开发模式
- java – 如何使定制实现Retrofit2.Call
- javafx-2 – 在JavaFX2.2中,如何设置输入字段和表头中输入的
- Java多线程之线程通信生产者消费者模式及等待唤醒机制代码详
- java – 这是集成测试还是单元测试?