This commit is contained in:
wuweifeng10
2020-05-18 18:26:47 +08:00
parent ea56e4bfd1
commit 32a1a17526
2 changed files with 1 additions and 87 deletions

View File

@@ -1,83 +0,0 @@
package com.jd.platform.async.wrapper;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* 暂时用不上
* @author wuweifeng wrote on 2019-11-19.
*/
public class WorkerGroup {
private List<WorkerWrapper<?, ?>> workerWrapperList;
// +-----+ +-----+
// +------> | EH2 |-----> | EH3 |-------+
// | +-----+ +-----+ |
// | v
//+-----+ +-----+
//| EH1 | | EH6 |
//+-----+ +-----+
// | ^
// | +-----+ +-----+ |
// +------> | EH4 |-----> | EH5 |-------+
// +-----+ +-----+
/**
* 如图这种的begin就是EH1。begin代表起始状态下要并发执行的wrapper集合
*/
private List<WorkerWrapper<?, ?>> beginList;
public WorkerGroup() {
workerWrapperList = new ArrayList<>();
}
/**
* 起始任务
*/
public WorkerGroup begin(WorkerWrapper<?, ?>... workerWrappers) {
if (workerWrappers == null) {
throw new NullPointerException("workerWrapper cannot be null");
}
beginList = Arrays.asList(workerWrappers);
return this;
}
public WorkerGroup then(WorkerWrapper<?, ?>... workerWrappers) {
if (workerWrappers == null) {
throw new NullPointerException("workerWrapper cannot be null");
}
beginList = Arrays.asList(workerWrappers);
return this;
}
public WorkerGroup addWrappers(List<WorkerWrapper<?, ?>> workerWrappers) {
if (workerWrappers == null) {
throw new NullPointerException("workers cannot be null");
}
this.workerWrapperList.addAll(workerWrappers);
return this;
}
public WorkerGroup addWrappers(WorkerWrapper<?, ?>... workerWrappers) {
if (workerWrappers == null) {
throw new NullPointerException("workers cannot be null");
}
return addWrappers(Arrays.asList(workerWrappers));
}
/**
* 返回当前worker的数量用于决定启用的线程数量
*
* @return size
*/
public int size() {
synchronized (this) {
return workerWrapperList.size();
}
}
public List<WorkerWrapper<?, ?>> getWorkerWrapperList() {
return workerWrapperList;
}
}

View File

@@ -36,7 +36,7 @@ public class Test {
.worker(w)
.param("0")
.id("first")
.next(workerWrapper1)
.next(workerWrapper1, true)
.callback(w)
.build();
@@ -47,9 +47,6 @@ public class Test {
workerWrapper1.setParam(result);
workerWrapper2.setParam(result1);
Async.beginWork(3500, workerWrapper);
System.out.println(workerWrapper2.getWorkResult());