1.Master-Worker原理
1.1) Master-Worker模式是一种常见的并行设计模式之一,并行体现在一下两个方面:
1.1.1) Client端把待处理的任务交给Master,Master将这个任务拆分成多个子任务交给Worker线程进行处理,
此时Client不需要阻塞的等待Master的处理结果,可以去处理其他的事情
1.1.2) Master在汇总结果的时候,不用等到Worker把所有的子任务都完成,才一起去汇总处理结果,Master可
以一边先处理Worker已经处理完的子任务,Worker也可以继续处理未完成的子任务
1.2) Master-Worker工作图
1.3)Master-Worker模式的结构
1.3.1)Master-Worker模式是一种使用多线程技术进行数据处理的结果模型
1.3.2)Master线程为主线程,它维护了一个Worker线程队列,子任务队列和子结果集;Worker线程队列,
不断的从子任务队列中提取任务处理,并把处理结果写入子结果集中去
2.Master-Worker模式的简单代码实现
2.1)Master类
package com.roger.multi_thread;
import java.util.HashMap;
import java.util.Map;
import java.util.Queue;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentLinkedQueue;
/**
* 主线程类
*/
public class Master {
//Worker线程队列
protected Map<String,Thread> workerThreadMap &