首页 > 编程语言 > 详细

利用线程池计算和

时间:2019-06-28 09:53:28      阅读:90      评论:0      收藏:0      [点我收藏+]

通过线程池中的线程对象,使用Callable接口完成两个数求和操作

 

1、l Future接口:用来记录线程任务执行完毕后产生的结果。线程池创建与使用

2、n V get() 获取Future对象中封装的数据结果

用线程池计算1..100,1...200的和

package com.oracle.demo05;

import java.util.concurrent.Callable;

public class MyCall implements Callable<Integer> {
    private int num1;
    private int num2;

    public MyCall(){}
            public MyCall(int num1,int num2){
                        this.num1=num1;
                        this.num2=num2;

                        }


    @Override
    public Integer call() throws Exception {
        int sum=0;
        for(int i=num1;i<=num2;i++){
        sum+=i;
        }
        return sum;
    }

}
package com.oracle.demo05;

import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;

public class demo01 {
//    用线程池计算1..100,1...200的和
    public static void main(String[] args) throws InterruptedException, ExecutionException {
        ExecutorService es=Executors.newFixedThreadPool(2);
        MyCall mc1=new MyCall(50,100);
        MyCall mc2=new MyCall(44,200);
//        让线程池自主选择一条线程执行线程任务
        Future<Integer>    f1=es.submit(mc1);
        Future<Integer>    f2=es.submit(mc2);
//        获取线程任务返回值
        int sum1=f1.get();
        int sum2=f2.get();
System.out.println(sum1);
System.out.println(sum2);


    }

}

 

利用线程池计算和

原文:https://www.cnblogs.com/-lwl/p/11101025.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!