使用Callable和Future两个类,来获得线程执行后的结果
来源:互联网 发布:停用移动数据总是弹出 编辑:程序博客网 时间:2024/06/06 02:04
package cn.threadPool;import java.util.concurrent.Callable;import java.util.concurrent.CompletionService;import java.util.concurrent.ExecutionException;import java.util.concurrent.ExecutorCompletionService;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Future;public class CallableTest { /** * 使用Callable和Future两个类,来获得线程执行后的结果 * (1)execute(Runnable)方法返回的是void * (2)要获得返回结果,使用submit方法 * */ public static void main(String[] args) throws InterruptedException, ExecutionException { ExecutorService singlePoor= Executors.newSingleThreadExecutor(); //要获取线程的返回结果,需要使用submit方法。 Future<String> future=singlePoor.submit(new Callable<String>(){ @Override public String call() throws Exception { return "hello"; } });System.out.println("等待结果Wie:"+future.get());/** * 使用CompletionService用于提交一组Callable任务,其take方法返回已完成的Callable任务对应的future对象 */// 创建了线程数量为10的线程池,然后添加了10个任务ExecutorService mutiPoor=Executors.newFixedThreadPool(10);CompletionService<Integer> cService=new ExecutorCompletionService (mutiPoor);for(int i=0;i<10;i++){ final int task=i; cService.submit(new Callable<Integer>(){ @Override public Integer call() throws Exception { return task; }});}// 依次循环,看先输出的是哪个任务的结果for(int i=0;i<10;i++){ System.out.println(cService.take().get());} }}
0 0
- 使用Callable和Future两个类,来获得线程执行后的结果
- java 使用Callable和Future返回线程执行的结果
- 06____线程返回执行结果(Callable和Future)
- Java:多线程,线程池,使用CompletionService通过Future来处理Callable的返回结果
- Java:多线程,线程池,使用CompletionService通过Future来处理Callable的返回结果
- Java线程池及Future、Callable获得线程返回结果
- JAVA多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没
- Callable和future的使用
- 线程--Callable和Future
- 使用Callable和Future创建线程
- Callable和Future的线程实现
- Java线程池及Future、Callable获得线程返回结果【Java线程池系列2】
- 使用Callable与Future来创建启动线程
- Callable和Future使用
- 多线程,线程池,使用CompletionService通过Future来处理Callable的返回
- java利用线程池(ExecutorService)配合Callable和Future实现执行方法超时的阻断
- callable&future的使用
- java多线程Future和Callable类的解释与使用
- [TPYBoard-Micropython之会python就能做硬件 2] 利用micropython控制NOKIA 5110屏
- CSU-ACM2017寒假集训1B-简单二分和三分 HDU - 2141
- 5-6 列出连通集(25分)
- 聊聊高并发系统之HTTP缓存
- MatLab实现Softmax Regression
- 使用Callable和Future两个类,来获得线程执行后的结果
- 应用多级缓存模式支撑海量读服务
- 团体程序设计天梯赛-练习集-L2-014. 列车调度(LIS)
- atoi()
- 聊聊java高并发系统之异步非阻塞
- java工具类快速定位
- 洛谷 1094——纪念品分组(贪心)
- openssl 的加密速度测试
- C语言面试题大汇总之华为面试题