java 并发计算数组和的示例
来源:互联网 发布:淘宝如何打印发货单 编辑:程序博客网 时间:2024/05/23 18:31
//java 并发计算数组和的示例
public class DemoTest {public static void main(String[] args) throws Exception {sumCalculate(); } static class Calculate implements Callable<Integer> {int[] a;public Calculate() {}public Calculate(int[] a) {this.a = a;}public Integer call() throws Exception {// TODO Auto-generated method stubint sum = 0;for (int i = 0; i < a.length; i++) {sum += a[i];}return sum;}}public static void sumCalculate() throws InterruptedException, ExecutionException {int core = Runtime.getRuntime().availableProcessors();int[] nums = {1,2,3,4,5,6,7,8,9,12,13,14};double ceil = Math.ceil(nums.length / (core*1.0));ExecutorService pool = Executors.newFixedThreadPool(core);List<FutureTask<Integer>> tasks = new ArrayList<FutureTask<Integer>>();for (int i = 0; i < core; i++) {int[] a = new int[(int) ceil];for (int j=0;j<ceil;j++){if(i*(int)ceil+j >= nums.length) break;a[j]=nums[i*(int)ceil+j];};Calculate calculate = new Calculate(a);FutureTask<Integer> task = new FutureTask<Integer>(calculate);Future<?> submit = pool.submit(task);System.out.println(submit.getClass());tasks.add(task);}int sum = 0;for (int i = 0; i < tasks.size(); i++) {FutureTask<Integer> futureTask = tasks.get(i);Integer integer = futureTask.get();sum += integer;}System.out.println(sum);}}
0 0
- java 并发计算数组和的示例
- java 并发计算数组的和
- java并发和线程的几个示例类
- Java数组和字符串的长度计算
- Java并发和多线程1:并发框架基本示例
- java并发发送请求的示例
- 计算数组的小和
- Java并发编程示例(二):获取和设置线程信息
- Java并发编程示例(二):获取和设置线程信息
- java并发库java.util.concurrent各类的使用示例
- Java并发之CyclicBarrier示例
- Thrift框架服务端并发处理模式的java示例
- java得用锁解决并发问题的简单示例
- Java并发编程示例(四):可控的线程中断
- Java并发包中CountDownLatch的工作原理、使用示例
- Java并发包中CyclicBarrier的工作原理、使用示例
- 并发数的计算
- 并发数的计算
- NUMA、SMP架构下的CPU性能调优:姻亲关系、进程绑定与中断
- [编程题]在一个N*N的数组中寻找所有横,竖,左上到右下,右上到左下,四种方向比较
- PreparedStatement进行数据库增删改查
- ionic2 一.基础 (3)常用命令2 自动生成器
- NOIP 2010 普及组 复赛 two 数字统计
- java 并发计算数组和的示例
- Java Socket 编程
- python 多线程遍历windows盘符下文件操作
- 2017计划
- Flume的安装和测试
- 链表应用--PAT.1097.Deduplication on a Linked List
- RabbitMq学习笔记(五)—— Topic
- / ./ ../的区别
- Windows/Ubuntu操作系统下ArduPilot(APM)固件的编译方法