package com.yonyou.sci.gateway.exec; import java.util.concurrent.Callable; public class CallableTask<I extends Number> implements Callable<Integer> { private Integer num; public CallableTask () {} // 使用构造方式接收参数 public CallableTask(Integer num){ this.num = num; } @Override public Integer call () { Integer count = 0; for (int i = 1; i <= num;i++) { // 根据传入的参数,迭代相加 count = count + i; } return count; } }
package com.yonyou.sci.gateway.exec; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; /** * 使用线程池实现并行计算 */ public class TaskMain { public static void main (String[] args) throws Exception{ // 创建一个固定长度线程池 ExecutorService es = Executors.newFixedThreadPool(2); // 使用线程池方式、执行线程子类 Future<Integer> r1 = es.submit(new CallableTask<Integer>(100)); Future<Integer> r2 = es.submit(new CallableTask<Integer>(200)); // 获取到计算的结果并打印出来 System.out.println(r1.get()); System.out.println(r2.get()); // 关闭线程池 es.shutdown(); } }
原文:https://www.cnblogs.com/tangshengwei/p/11723523.html