mirror of
https://gitee.com/jd-platform-opensource/asyncTool.git
synced 2026-03-22 12:27:15 +08:00
63 lines
2.0 KiB
Java
63 lines
2.0 KiB
Java
package v15.cases;
|
|
|
|
import com.jd.platform.async.executor.Async;
|
|
import com.jd.platform.async.wrapper.WorkerWrapper;
|
|
import com.jd.platform.async.wrapper.WorkerWrapperBuilder;
|
|
|
|
import java.util.concurrent.ExecutionException;
|
|
|
|
/**
|
|
* 示例:简单示例--复杂点的
|
|
*
|
|
* @author create by TcSnZh on 2021/5/8-下午10:29
|
|
*/
|
|
class Case1 {
|
|
private static WorkerWrapperBuilder<?, ?> builder(String id) {
|
|
return WorkerWrapper.<String, String>builder()
|
|
.id(id)
|
|
.worker((param, allWrappers) -> {
|
|
System.out.println("wrapper(id=" + id + ") is working");
|
|
try {
|
|
Thread.sleep(50);
|
|
} catch (InterruptedException e) {
|
|
e.printStackTrace();
|
|
}
|
|
return null;
|
|
});
|
|
}
|
|
|
|
public static void main(String[] args) {
|
|
WorkerWrapper<?, ?> a = builder("A").build();
|
|
WorkerWrapper<?, ?> d;
|
|
builder("H")
|
|
.depends(
|
|
builder("F")
|
|
.depends(builder("B").depends(a).build())
|
|
.depends(builder("C").depends(a).build())
|
|
.build(),
|
|
builder("G")
|
|
.depends(builder("E")
|
|
.depends(d = builder("D").build())
|
|
.build())
|
|
.build()
|
|
)
|
|
.build();
|
|
try {
|
|
Async.beginWork(1000, a, d);
|
|
} catch (ExecutionException | InterruptedException e) {
|
|
e.printStackTrace();
|
|
}
|
|
/* 输出:
|
|
wrapper(id=D) is working
|
|
wrapper(id=A) is working
|
|
wrapper(id=E) is working
|
|
wrapper(id=B) is working
|
|
wrapper(id=C) is working
|
|
wrapper(id=G) is working
|
|
wrapper(id=F) is working
|
|
wrapper(id=H) is working
|
|
*/
|
|
}
|
|
}
|
|
|