<park>
<leader>192.168.0.124:1889</leader>
</park>
下面给出一个使用方法,
自定义供工人累继承自MigrantWorker
public class SimpleWorker extends MigrantWorker{ private double m=0.0,n=0.0; public SimpleWorker(double m,double n) { this.m=m; this.n=n; } protected WareHouse doTask(WareHouse inhouse) { System.out.println("向仓库输入"); double pi=0.0; for(double i=m;i<n;i++) { pi+=Math.pow(-1,i+1)/(2*i-1); } inhouse.put("pi",4*pi); System.out.println("输入完毕"); return inhouse; } public static void main(String [] args) { new SimpleWorker(Integer.parseInt(args[0]),Integer.parseInt(args[1])).waitWorking(args[2],Integer.parseInt(args[3]),args[4]); } }
自定义供工头类继承自Contractor
import java.util.*; public class SimpleCtor extends Contractor{ public static void main(String [] args) { long start=new Date().getTime(); WareHouse[] results = doTaskBatch(getWaitingWorkers(args[0]),new WareHouse());//args[0]为工人类型 double pi=0.0; for(int i=0;i<results.length;i++) { pi=pi+Double.parseDouble(results[i].get("pi")+""); } System.out.println(pi); long end=new Date().getTime(); System.out.println((end-start)/1000); exit(); } }
运行时先运行java -cp parallel-computing.jar; BeanContext
接着在多个窗口下运行java -cp parallel-computing.jar; SimpleWorker 1 2 工人1IP 工人1端口 工人类型(任意字符串)
然后运行java -cp parallel-computing.jar; SimpleCtor 工人类型即可得到对应公认的计算结果。
该框架是小编仿照fourinone设计思想的简化版本。