多线程之创建线程的方式之一:实现Callable接口(三)
来源:互联网 发布:vscode怎么编译运行 编辑:程序博客网 时间:2024/06/05 12:39
对于多线程,大家并不陌生,对于如何创建线程也是轻车熟路,对于使用new thread和实现runable接口的方式,不再多说。这篇博文我们介绍第三种:实现Callable接口。
Callable接口
接口定义:
@FunctionalInterfacepublic 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接口其实特别简单,在多线程环境中,返回结果。
下篇博文,我们研究如何解决多线程安全问题。
0 0
- 多线程之创建线程的方式之一:实现Callable接口(三)
- 多线程之创建线程的方式之一:实现Callable接口(三)
- 多线程创建方式三之实现Callable接口
- 创建java线程方式之三实现Callable接口
- 创建执行线程的方式三:实现 Callable 接口
- 21.线程的实现方式三 ---实现Callable接口
- 创建线程的第三种方式:实现Callable接口
- 三种Java创建线程的方式(Callable,FutureTask)
- Java多线程之Callable接口的实现
- Java多线程之Callable接口的实现
- Java多线程之Callable接口的实现
- Java多线程之Callable接口的实现
- Java多线程之Callable接口的实现
- Java多线程之Callable接口的实现
- Java多线程之Callable接口的实现
- Java多线程之Callable接口的实现
- Java多线程之Callable接口的实现
- Java多线程之Callable接口的实现
- 七牛云文件上传
- iOS图像文字识别
- 苹果
- PHP四种基本排序算法
- JavaScript学习——数据属性和访问器属性
- 多线程之创建线程的方式之一:实现Callable接口(三)
- GDB调试果然强大
- unit 键盘输入 控制方向
- linux shell命令${}和basename和dirname的学习
- bootstrap-table的导出数据功能的使用,以及导出中文时无效的问题(点击无效)。
- 使用Visual Studio 2017作为Linux C++开发工具
- 20170307 Linux+Oracle+文件系统+添加表空间
- MySQL数据库索引:删除、查看、创建索引
- 程序员的眼里的“逗逼”用户[转]