Master-Worker模式是一种使用多线程进行数据处理的结构。多个Worker进程协作处理用户请求,Master进程负责维护Worker进程,并整合最终处理结果。
概念
Master-Worker模式是常用的并行模式之一。系统有两类进程协作工作:Master进程和Worker进程。Master进程负责接收和分配任务,Worker进程负责处理子任务。当所有的Worker进程将子任务完成以后,将结果返回给Master进程,由Master进程做归纳和总结。
工作示意图
模式结构图
Master维护任务队列、Worker进程队列、子任务结果集
代码实现
Master-Worker模式简易实现
Master
public class Master{
//任务队列
protected Queue<Object> taskQueue=new ConcurrentLinkedQueue<>();
//子任务结果集
protected Map<String ,Object> resultMap=new HashMap<>();
//worker进程队列
protected Map<String ,Thread> threadMap=new HashMap<>();
//判断所有的子任务是否都结束
public boolean isComeplete(){
for (Map.Entry<String,Thread> entry:threadMap.entrySet()){
if (entry.getValue().getState()!= Thread.State.TERMINATED){
return