futureTask和线程池
来源:互联网 发布:linux ant是什么 编辑:程序博客网 时间:2024/05/18 01:33
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.concurrent.*;
/**
* Created by taoshao on 17/8/16.
*/
public class ThreadTest {
public static void main(String[] args) throws ExecutionException, InterruptedException { new ThreadTest().exec();
// Callable callable = new Callable() {
// @Override
// public Integer call() throws Exception {
// System.out.println(“start”);
// Thread.sleep(1000);
// int result = 0;
// for (int i = 0; i <= 100; i++) {
// result += i;
// }
// System.out.println(“task finish”);
// return result;
// }
// };
//
// FutureTask futureTask = new FutureTask(callable);
// new Thread((futureTask)).start();
//
// try {
// System.out.println(“result : ” + futureTask.get());
// } catch (InterruptedException e){
// e.printStackTrace();
// } catch (ExecutionException e){
// e.printStackTrace();
// }
}
private void exec() throws ExecutionException, InterruptedException { List<FutureTask<Integer>> futureTasks = new ArrayList<>(); ExecutorService executorService = Executors.newFixedThreadPool(5); for (int i = 0; i < 10; i++){ Callable<Integer> callable = getCallable(String.valueOf(i)); FutureTask<Integer> futureTask = new FutureTask<Integer>(callable); futureTasks.add(futureTask); executorService.submit(futureTask); } int count = 0; for (FutureTask<Integer> futureTask : futureTasks){ count+= futureTask.get(); } executorService.shutdown();}private Callable<Integer> getCallable(final String name) { return new Callable<Integer>() { @Override public Integer call() throws Exception { Integer res = new Random().nextInt(100); Thread.sleep(100); System.out.println("任务执行 " + name +": 获取结果" + res); return res; } };}
}
- futureTask和线程池
- FutureTask和线程池的结合使用
- 使用Callable和FutureTask创建线程
- JAVA并行异步编程线程池+FutureTask
- JAVA并行异步编程线程池+FutureTask
- Java线程池——FutureTask
- JUC源码分析27-线程池-FutureTask
- JAVA并行异步编程线程池+FutureTask
- Spring线程池和JDK线程池的区别及与FutureTask配合使用得到任务执行结果
- Java线程池之FutureTask【Java线程池系列3】
- Java 异步线程FutureTask的使用和SwingWorker
- 带返回值的线程:Callable、Future和FutureTask
- 一点一点学线程(五)Callable、Future和FutureTask
- Java并发编程线程中:Callable、Future和FutureTask类
- Java线程之FutureTask
- 线程 Callable FutureTask 入门
- java线程之FutureTask
- Java线程之FutureTask
- 记将github中Asciidoc文档格式项目导出pdf的一次实践
- Hbase适合场景
- 关于nginx在MacOS上会被防火墙日的问题
- 深入学习JavaScript: apply call方法 详解
- java学习——java基础(一)之概念解析
- futureTask和线程池
- Linunx设备驱动之ADC与触摸屏驱动移植
- 策略模式
- mycat实现原理及配置
- 同步中断与异步中断
- <8/16>集训日记
- MQTT Java客户端Eclipse paho实现数据的发送和接收
- Spring aop-本类方法调用切面增强失效
- 网页样式与自动加载