如何得到线程执行完之后返回的结果
来源:互联网 发布:中科院外籍院士知乎 编辑:程序博客网 时间:2024/05/17 03:52
在实际开发过程中,很多时候要将子线程执行完后返回的结果给到主线程里。具体怎么实现呢?这里给出3个实现方法!
1、根据反射原理实现
很多人都习惯在调用线程的时候,通过构造方法给线程传递参数,这里我们在构造方法里传两个参数,一个是类 callback,一个是方法名 method。这样我们在线程的run方法最后 执行callback.getMethod(method).invoke(null); 这样就可能执行你指定的某个类下的某个方法了!
2、Callable+ScheduledThreadPoolExecutor实现
这个是在Java1.5以后,添加了ScheduledThreadPoolExecutor和callable两个组件(接口),ScheduledThreadPoolExecutor大家可能比较熟悉,它的优点就不说了;它用来执行线程进行调度的时候,有一个方法.schedule(Callable<Object> callable, long delay, TimeUnit unit),注意:这里的参数是Callable而不是Runnable,大家千万不要被它唬住了,其实它和Runnable差不多,都能实现有个线程,只不过Callable可以添加返回值!这正是我们想要的!
所以我们在用ScheduledThreadPoolExecutor调度线程得到返回值 ScheduledFuture后执行get()方法,就可以得到返回值了。
3、第三种就是自定义接口,把接口当初参数传进线程里,然后在线程完成的地方调用接口的方法,这个方法也是最常用的
0 0
- 如何得到线程执行完之后返回的结果
- 线程池等待一定数目的线程执行完毕之后返回结果
- java中等待一些线程执行完之后,再去执行别的方法(后者需要使用前者返回的结果)
- 如何在java中获取线程异步执行之后的结果
- 线程的乱序执行,可能会得到意想不到的结果
- Callable接口实现线程执行结果的返回
- java 使用Callable和Future返回线程执行的结果
- python 写一个Mythread能返回线程执行的结果
- Callable与Future的应用得到线程的返回结果(十)
- 在VC下执行DOS命令并得到返回结果
- T-SQL : 执行字符串SQL语句,并得到返回结果
- ansible playbook API得到任务执行返回结果
- ajax 返回封装之后的结果
- spring线程池ThreadPoolExecutor配置并且得到任务执行的结果
- spring线程池ThreadPoolExecutor配置并且得到任务执行的结果
- Spring线程池ThreadPoolExecutor配置并且得到任务执行的结果
- spring线程池ThreadPoolExecutor配置并且得到任务执行的结果
- spring线程池ThreadPoolExecutor配置并且得到任务执行的结果
- 实现按钮拖动到底部,与底部按钮互换的功能
- 从这些方面锻炼成为优秀的软件工程师
- 获取手机所有联系人及搜索
- 总结一下打字
- 自己做得json测试类,包含JSONArray,JSONObject,Gson基本使用方法
- 如何得到线程执行完之后返回的结果
- 第六部分: 大数据监管和信息单一视图监管
- android中坐标系详解
- Mahout使用入门
- 12.22.2015
- 程序员 SEO优化
- Python连接MySQL中有关中文乱码的解决问题
- BZOJ1509: [NOI2003]逃学的小孩
- 第七部分: 分析监管、安全与隐私管理和信息生命周期监管