Master-Worker
高并发模式
是一种常见的高并发模式, 核心思想是任务的调度与执行分离, 调度的角色是master, 执行的角色为worker,
master负责接收任务、 派发任务、 合并执行结果
worker负责执行任务。
例如定时器任务场景、 或者执行N个任务, 最终获取这N个任务的结果。
1.0 创建master
/**
* @Author: ZhiHao
* @Date: 2021/12/27 14:53
* @Description: 主人, 用于接收任务、 获取任务结果、 与派发任务给工作人
* @Versions 1.0
**/
@Slf4j
public class Master<T> {
private final Map<String, Worker> workers = new HashedMap<>();
private final LinkedBlockingDeque<CallableTask> callableTasks = new LinkedBlockingDeque<>();
private Thread thread;
public Master(int worker) {
for (int i = 0; i < worker; i++) {
Worker<T> value = new Worker();
workers.put(value.getWorkerNum() + "号工人", value);
}
log.info("一共有" + workers.toString() + "工人");
this.thread = new Thread(() -> this.startMaster()); // 启动主人线程
this.thread.