package com.xwt.desiginPattern.master_worker;
public class PriceWorker extends Worker {
@Override
public Object handler(Task task) {
Object o = null;
try {
//休眠500ms 模拟业务处理
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
o = task.getPrice();
return o;
}
}
package com.xwt.desiginPattern.master_worker;
import java.util.Random;
public class Main {
public static void main(String[] args) {
Worker worker = new PriceWorker();
int count = Runtime.getRuntime().availableProcessors();
System.out.println(count);
Master master = new Master(worker, 5);
Random random = new Random();
for(int i = 1; i <= 100; i++){
Task task = new Task();
task.setId(i);
task.setName("任务"+i);
task.setPrice(random.nextInt(1000));
master.submitJob(task);
}
master.excute();
long begin = System.currentTimeMillis();
while(true){
if(master.isComplete()){
int rst = master.getResult();
long end = System.currentTimeMillis();
System.out.println("结果:"+rst + ", 耗时:"+(end-begin));
break;
}
}
}
}