一个java并行小应用

好久没写博客了,最近在研究fourinone框架,受到其启发,写了一个并行的小应用,代码,在附件中,下面贴出应用代码:
public class Test extends Ctor
{
	public static void main(String [] args) 
	{
		WareHouse wh[]=doTaskBatch("Test");
		double pi=0.0;
		for(int i=0;i<wh.length;i++)
			pi+=Double.parseDouble(wh[i].get("pi").toString());
		System.out.println("pi="+pi);
	}
	public static WareHouse task0()
	{
		WareHouse wh=new WareHouse();
		double m=1.0;
		double n=250000000.0;
		double pi=0.0;
		for(double i=m;i<n;i++)
		{
				pi+=Math.pow(-1,i+1)/(2*i-1);
		}
		wh.put("pi",4*pi);
		return wh;
	}

	public static WareHouse task1()
	{
		WareHouse wh=new WareHouse();
		double m=250000000.0;
		double n=500000000.0;
		double pi=0.0;
		for(double i=m;i<n;i++)
		{
				pi+=Math.pow(-1,i+1)/(2*i-1);
		}
		wh.put("pi",4*pi);
		return wh;
	}

	public static WareHouse task2()
	{
		WareHouse wh=new WareHouse();
		double m=500000000.0;
		double n=750000000.0;
		double pi=0.0;
		for(double i=m;i<n;i++)
		{
				pi+=Math.pow(-1,i+1)/(2*i-1);
		}
		wh.put("pi",4*pi);
		return wh;
	}

	public static WareHouse task3()
	{
		WareHouse wh=new WareHouse();
		double m=750000000.0;
		double n=1000000000.0;
		double pi=0.0;
		for(double i=m;i<n;i++)
		{
				pi+=Math.pow(-1,i+1)/(2*i-1);
		}
		wh.put("pi",4*pi);
		return wh;
	}
}



使用该jar包,需要用户自定义的类继承Ctor类,同时doTaskBatch()方法的参数应该是该类的名字,这里为Test,接着,使用者写public static WareHouse taskn()方法即可,有几个并发任务,就写及格task方法,注意,方法应该是static的,并且,一定要从task0开始写起,task1,task2,其中WareHouse就是一个HashMap的子类,用于存放结果,欢迎大家来讨论。

你可能感兴趣的:(java)