多线程实现异步计算

package cn.itcast.demo6;

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

/*

  • 使用多线程技术,求和
  • 两个线程,1个线程计算1+100,另一个线程计算1+200的和
  • 多线程的异步计算
    */
    public class ThreadPoolDemo {
    public static void main(String[] args)throws Exception {
    ExecutorService es = Executors.newFixedThreadPool(2);
    Future f1 =es.submit(new GetSumCallable(100));
    Future f2 =es.submit(new GetSumCallable(200));
    System.out.println(f1.get());
    System.out.println(f2.get());
    es.shutdown();
    }
    }

package cn.itcast.demo6;

import java.util.concurrent.Callable;

public class GetSumCallable implements Callable{

//利用构造器来控制各个线程的传参

private int a;
public GetSumCallable(int a){
	this.a=a;
}

public Integer call(){
	int sum = 0 ;
	for(int i = 1 ; i <=a ; i++){
		sum = sum + i ;
	}
	return sum;
}

}

猜你喜欢

转载自blog.csdn.net/weixin_43308935/article/details/84642202