()
.worker(w3)
.callback(w3)
.param("3")
@@ -305,13 +309,13 @@ public class TestPar {
/**
* 0执行完,同时1和2, 1\2都完成后3,2耗时2秒,1耗时1秒。3会等待2完成
- * 1
+ * 1
* 0 3
- * 2
- *
+ * 2
+ *
* 执行结果0,1,2,3
*/
- private static void testMulti4() throws ExecutionException, InterruptedException {
+ private void testMulti4() throws ExecutionException, InterruptedException {
ParWorker w = new ParWorker();
ParWorker1 w1 = new ParWorker1();
@@ -320,27 +324,27 @@ public class TestPar {
ParWorker3 w3 = new ParWorker3();
- WorkerWrapper workerWrapper3 = new WorkerWrapper.Builder()
+ WorkerWrapper workerWrapper3 = new WorkerWrapper.Builder()
.worker(w3)
.callback(w3)
.param("3")
.build();
- WorkerWrapper workerWrapper2 = new WorkerWrapper.Builder()
+ WorkerWrapper workerWrapper2 = new WorkerWrapper.Builder()
.worker(w2)
.callback(w2)
.param("2")
.next(workerWrapper3)
.build();
- WorkerWrapper workerWrapper1 = new WorkerWrapper.Builder()
+ WorkerWrapper workerWrapper1 = new WorkerWrapper.Builder()
.worker(w1)
.callback(w1)
.param("1")
.next(workerWrapper3)
.build();
- WorkerWrapper workerWrapper = new WorkerWrapper.Builder()
+ WorkerWrapper workerWrapper = new WorkerWrapper.Builder()
.worker(w)
.callback(w)
.param("0")
@@ -366,13 +370,13 @@ public class TestPar {
/**
* 0执行完,同时1和2, 1\2都完成后3,2耗时2秒,1耗时1秒。3会等待2完成
- * 1
+ * 1
* 0 3
- * 2
- *
+ * 2
+ *
* 执行结果0,1,2,3
*/
- private static void testMulti4Reverse() throws ExecutionException, InterruptedException {
+ private void testMulti4Reverse() throws ExecutionException, InterruptedException {
ParWorker w = new ParWorker();
ParWorker1 w1 = new ParWorker1();
@@ -381,19 +385,19 @@ public class TestPar {
ParWorker3 w3 = new ParWorker3();
- WorkerWrapper workerWrapper = new WorkerWrapper.Builder()
+ WorkerWrapper workerWrapper = new WorkerWrapper.Builder()
.worker(w)
.callback(w)
.param("0")
.build();
- WorkerWrapper workerWrapper3 = new WorkerWrapper.Builder()
+ WorkerWrapper workerWrapper3 = new WorkerWrapper.Builder()
.worker(w3)
.callback(w3)
.param("3")
.build();
- WorkerWrapper workerWrapper2 = new WorkerWrapper.Builder()
+ WorkerWrapper workerWrapper2 = new WorkerWrapper.Builder()
.worker(w2)
.callback(w2)
.param("2")
@@ -401,7 +405,7 @@ public class TestPar {
.next(workerWrapper3)
.build();
- WorkerWrapper workerWrapper1 = new WorkerWrapper.Builder()
+ WorkerWrapper workerWrapper1 = new WorkerWrapper.Builder()
.worker(w1)
.callback(w1)
.param("1")
@@ -428,15 +432,15 @@ public class TestPar {
/**
* 0执行完,同时1和2, 1\2 任何一个执行完后,都执行3
- * 1
+ * 1
* 0 3
- * 2
- *
+ * 2
+ *
* 则结果是:
* 0,2,3,1
* 2,3分别是500、400.3执行完毕后,1才执行完
*/
- private static void testMulti5() throws ExecutionException, InterruptedException {
+ private void testMulti5() throws ExecutionException, InterruptedException {
ParWorker w = new ParWorker();
ParWorker1 w1 = new ParWorker1();
@@ -446,27 +450,27 @@ public class TestPar {
ParWorker3 w3 = new ParWorker3();
w3.setSleepTime(400);
- WorkerWrapper workerWrapper3 = new WorkerWrapper.Builder()
+ WorkerWrapper workerWrapper3 = new WorkerWrapper.Builder()
.worker(w3)
.callback(w3)
.param("3")
.build();
- WorkerWrapper workerWrapper2 = new WorkerWrapper.Builder()
+ WorkerWrapper workerWrapper2 = new WorkerWrapper.Builder()
.worker(w2)
.callback(w2)
.param("2")
.next(workerWrapper3, false)
.build();
- WorkerWrapper workerWrapper1 = new WorkerWrapper.Builder()
+ WorkerWrapper workerWrapper1 = new WorkerWrapper.Builder()
.worker(w1)
.callback(w1)
.param("1")
.next(workerWrapper3, false)
.build();
- WorkerWrapper workerWrapper = new WorkerWrapper.Builder()
+ WorkerWrapper workerWrapper = new WorkerWrapper.Builder()
.worker(w)
.callback(w)
.param("0")
@@ -489,15 +493,15 @@ public class TestPar {
/**
* 0执行完,同时1和2, 1\2 任何一个执行完后,都执行3
- * 1
+ * 1
* 0 3
- * 2
- *
+ * 2
+ *
* 则结果是:
* 0,2,3,1
* 2,3分别是500、400.3执行完毕后,1才执行完
*/
- private static void testMulti5Reverse() throws ExecutionException, InterruptedException {
+ private void testMulti5Reverse() throws ExecutionException, InterruptedException {
ParWorker w = new ParWorker();
ParWorker1 w1 = new ParWorker1();
@@ -507,19 +511,19 @@ public class TestPar {
ParWorker3 w3 = new ParWorker3();
w3.setSleepTime(400);
- WorkerWrapper workerWrapper = new WorkerWrapper.Builder()
+ WorkerWrapper workerWrapper = new WorkerWrapper.Builder()
.worker(w)
.callback(w)
.param("0")
.build();
- WorkerWrapper workerWrapper3 = new WorkerWrapper.Builder()
+ WorkerWrapper workerWrapper3 = new WorkerWrapper.Builder()
.worker(w3)
.callback(w3)
.param("3")
.build();
- WorkerWrapper workerWrapper2 = new WorkerWrapper.Builder()
+ WorkerWrapper workerWrapper2 = new WorkerWrapper.Builder()
.worker(w2)
.callback(w2)
.param("2")
@@ -527,7 +531,7 @@ public class TestPar {
.next(workerWrapper3, false)
.build();
- WorkerWrapper workerWrapper1 = new WorkerWrapper.Builder()
+ WorkerWrapper workerWrapper1 = new WorkerWrapper.Builder()
.worker(w1)
.callback(w1)
.param("1")
@@ -536,7 +540,6 @@ public class TestPar {
.build();
-
long now = SystemClock.now();
System.out.println("begin-" + now);
@@ -552,16 +555,16 @@ public class TestPar {
/**
* 0执行完,同时1和2, 必须1执行完毕后,才能执行3. 无论2是否领先1完毕,都要等1
- * 1
+ * 1
* 0 3
- * 2
- *
+ * 2
+ *
* 则结果是:
* 0,2,1,3
- *
+ *
* 2,3分别是500、400.2执行完了,1没完,那就等着1完毕,才能3
*/
- private static void testMulti6() throws ExecutionException, InterruptedException {
+ private void testMulti6() throws ExecutionException, InterruptedException {
ParWorker w = new ParWorker();
ParWorker1 w1 = new ParWorker1();
@@ -571,28 +574,28 @@ public class TestPar {
ParWorker3 w3 = new ParWorker3();
w3.setSleepTime(400);
- WorkerWrapper workerWrapper3 = new WorkerWrapper.Builder()
+ WorkerWrapper workerWrapper3 = new WorkerWrapper.Builder()
.worker(w3)
.callback(w3)
.param("3")
.build();
//设置2不是必须,1是必须的
- WorkerWrapper workerWrapper2 = new WorkerWrapper.Builder()
+ WorkerWrapper workerWrapper2 = new WorkerWrapper.Builder()
.worker(w2)
.callback(w2)
.param("2")
.next(workerWrapper3)
.build();
- WorkerWrapper workerWrapper1 = new WorkerWrapper.Builder()
+ WorkerWrapper workerWrapper1 = new WorkerWrapper.Builder()
.worker(w1)
.callback(w1)
.param("1")
.next(workerWrapper3)
.build();
- WorkerWrapper workerWrapper0 = new WorkerWrapper.Builder()
+ WorkerWrapper workerWrapper0 = new WorkerWrapper.Builder()
.worker(w)
.callback(w)
.param("0")
@@ -615,12 +618,12 @@ public class TestPar {
/**
* 两个0并行,上面0执行完,同时1和2, 下面0执行完开始1,上面的 必须1、2执行完毕后,才能执行3. 最后必须2、3都完成,才能4
- * 1
+ * 1
* 0 3
- * 2 4
+ * 2 4
* ---------
* 0 1 2
- *
+ *
* 则结果是:
* callback worker0 success--1577242870969----result = 1577242870968---param = 00 from 0-threadName:Thread-1
* callback worker0 success--1577242870969----result = 1577242870968---param = 0 from 0-threadName:Thread-0
@@ -631,20 +634,20 @@ public class TestPar {
* callback worker3 success--1577242872977----result = 1577242872977---param = 3 from 3-threadName:Thread-2
* callback worker4 success--1577242873980----result = 1577242873980---param = 4 from 3-threadName:Thread-2
*/
- private static void testMulti7() throws ExecutionException, InterruptedException {
+ private void testMulti7() throws ExecutionException, InterruptedException {
ParWorker w = new ParWorker();
ParWorker1 w1 = new ParWorker1();
ParWorker2 w2 = new ParWorker2();
ParWorker3 w3 = new ParWorker3();
ParWorker4 w4 = new ParWorker4();
- WorkerWrapper workerWrapper4 = new WorkerWrapper.Builder()
+ WorkerWrapper workerWrapper4 = new WorkerWrapper.Builder()
.worker(w4)
.callback(w4)
.param("4")
.build();
- WorkerWrapper workerWrapper3 = new WorkerWrapper.Builder()
+ WorkerWrapper workerWrapper3 = new WorkerWrapper.Builder()
.worker(w3)
.callback(w3)
.param("3")
@@ -652,7 +655,7 @@ public class TestPar {
.build();
//下面的2
- WorkerWrapper workerWrapper22 = new WorkerWrapper.Builder()
+ WorkerWrapper workerWrapper22 = new WorkerWrapper.Builder()
.worker(w2)
.callback(w2)
.param("22")
@@ -660,7 +663,7 @@ public class TestPar {
.build();
//下面的1
- WorkerWrapper workerWrapper11 = new WorkerWrapper.Builder()
+ WorkerWrapper workerWrapper11 = new WorkerWrapper.Builder()
.worker(w1)
.callback(w1)
.param("11")
@@ -668,7 +671,7 @@ public class TestPar {
.build();
//下面的0
- WorkerWrapper workerWrapper00 = new WorkerWrapper.Builder()
+ WorkerWrapper workerWrapper00 = new WorkerWrapper.Builder()
.worker(w)
.callback(w)
.param("00")
@@ -676,7 +679,7 @@ public class TestPar {
.build();
//上面的1
- WorkerWrapper workerWrapper1 = new WorkerWrapper.Builder()
+ WorkerWrapper workerWrapper1 = new WorkerWrapper.Builder()
.worker(w1)
.callback(w1)
.param("1")
@@ -684,7 +687,7 @@ public class TestPar {
.build();
//上面的2
- WorkerWrapper workerWrapper2 = new WorkerWrapper.Builder()
+ WorkerWrapper workerWrapper2 = new WorkerWrapper.Builder()
.worker(w2)
.callback(w2)
.param("2")
@@ -692,7 +695,7 @@ public class TestPar {
.build();
//上面的0
- WorkerWrapper workerWrapper0 = new WorkerWrapper.Builder()
+ WorkerWrapper workerWrapper0 = new WorkerWrapper.Builder()
.worker(w)
.callback(w)
.param("0")
@@ -715,10 +718,10 @@ public class TestPar {
/**
* a1 -> b -> c
* a2 -> b -> c
- *
+ *
* b、c
*/
- private static void testMulti8() throws ExecutionException, InterruptedException {
+ private void testMulti8() throws ExecutionException, InterruptedException {
ParWorker w = new ParWorker();
ParWorker1 w1 = new ParWorker1();
w1.setSleepTime(1005);
@@ -728,26 +731,26 @@ public class TestPar {
ParWorker3 w3 = new ParWorker3();
w3.setSleepTime(1000);
- WorkerWrapper workerWrapper3 = new WorkerWrapper.Builder()
+ WorkerWrapper workerWrapper3 = new WorkerWrapper.Builder()
.worker(w3)
.callback(w3)
.param("c")
.build();
- WorkerWrapper workerWrapper2 = new WorkerWrapper.Builder()
+ WorkerWrapper workerWrapper2 = new WorkerWrapper.Builder()
.worker(w2)
.callback(w2)
.param("b")
.next(workerWrapper3)
.build();
- WorkerWrapper workerWrappera1 = new WorkerWrapper.Builder()
+ WorkerWrapper workerWrappera1 = new WorkerWrapper.Builder()
.worker(w1)
.callback(w1)
.param("a1")
.next(workerWrapper2)
.build();
- WorkerWrapper workerWrappera2 = new WorkerWrapper.Builder()
+ WorkerWrapper workerWrappera2 = new WorkerWrapper.Builder()
.worker(w1)
.callback(w1)
.param("a2")
@@ -761,11 +764,11 @@ public class TestPar {
/**
* w1 -> w2 -> w3
- * --- last
+ * --- last
* w
* w1和w并行,w执行完后就执行last,此时b、c还没开始,b、c就不需要执行了
*/
- private static void testMulti9() throws ExecutionException, InterruptedException {
+ private void testMulti9() throws ExecutionException, InterruptedException {
ParWorker1 w1 = new ParWorker1();
//注意这里,如果w1的执行时间比w长,那么w2和w3肯定不走。 如果w1和w执行时间一样长,多运行几次,会发现w2有时走有时不走
// w1.setSleepTime(1100);
@@ -775,34 +778,34 @@ public class TestPar {
ParWorker3 w3 = new ParWorker3();
ParWorker4 w4 = new ParWorker4();
- WorkerWrapper last = new WorkerWrapper.Builder()
+ WorkerWrapper last = new WorkerWrapper.Builder()
.worker(w1)
.callback(w1)
.param("last")
.build();
- WorkerWrapper wrapperW = new WorkerWrapper.Builder()
+ WorkerWrapper wrapperW = new WorkerWrapper.Builder()
.worker(w)
.callback(w)
.param("w")
.next(last, false)
.build();
- WorkerWrapper wrapperW3 = new WorkerWrapper.Builder()
+ WorkerWrapper wrapperW3 = new WorkerWrapper.Builder()
.worker(w3)
.callback(w3)
.param("w3")
.next(last, false)
.build();
- WorkerWrapper wrapperW2 = new WorkerWrapper.Builder()
+ WorkerWrapper