18 |
|
int maxStages = 8; |
19 |
|
int items = 1000000; |
20 |
|
|
21 |
< |
Class klass = null; |
21 |
> |
Class<?> klass = null; |
22 |
|
if (args.length > 0) { |
23 |
|
try { |
24 |
|
klass = Class.forName(args[0]); |
43 |
|
Thread.sleep(100); |
44 |
|
print = true; |
45 |
|
|
46 |
< |
int k = 1; |
47 |
< |
for (int i = 1; i <= maxStages;) { |
46 |
> |
for (int k = 1, i = 1; i <= maxStages;) { |
47 |
|
oneRun(klass, i, items); |
48 |
|
if (i == k) { |
49 |
|
k = i << 1; |
53 |
|
i = k; |
54 |
|
} |
55 |
|
pool.shutdown(); |
56 |
< |
} |
56 |
> |
} |
57 |
|
|
58 |
|
static class Stage implements Callable<Integer> { |
59 |
|
final Deque<Integer> queue; |
116 |
|
} |
117 |
|
} |
118 |
|
|
119 |
< |
static void oneRun(Class klass, int n, int items) throws Exception { |
119 |
> |
static void oneRun(Class<?> klass, int n, int items) throws Exception { |
120 |
|
Deque<Integer> q = (Deque<Integer>) klass.newInstance(); |
121 |
|
LoopHelpers.BarrierTimer timer = new LoopHelpers.BarrierTimer(); |
122 |
|
CyclicBarrier barrier = new CyclicBarrier(n + 1, timer); |