--- jsr166/src/test/loops/ConcurrentQueueLoops.java 2009/11/03 01:04:02 1.10 +++ jsr166/src/test/loops/ConcurrentQueueLoops.java 2016/12/31 19:02:43 1.19 @@ -1,13 +1,16 @@ /* * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ -import java.util.*; -import java.util.concurrent.*; -import java.util.concurrent.locks.*; -import java.util.concurrent.atomic.*; +import java.util.ArrayList; +import java.util.Queue; +import java.util.concurrent.Callable; +import java.util.concurrent.CyclicBarrier; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; public class ConcurrentQueueLoops { static final ExecutorService pool = Executors.newCachedThreadPool(); @@ -21,7 +24,7 @@ public class ConcurrentQueueLoops { public static void main(String[] args) throws Exception { int maxStages = 100; int work = 1024; - Class klass = null; + Class klass = null; if (args.length > 0) { try { klass = Class.forName(args[0]); @@ -50,8 +53,7 @@ public class ConcurrentQueueLoops { Thread.sleep(100); print = true; - int k = 1; - for (int i = 1; i <= maxStages;) { + for (int k = 1, i = 1; i <= maxStages;) { oneRun(klass, i); if (i == k) { k = i << 1; @@ -61,13 +63,13 @@ public class ConcurrentQueueLoops { i = k; } pool.shutdown(); - } + } static final class Stage implements Callable { final Queue queue; final CyclicBarrier barrier; final int nthreads; - Stage (Queue q, CyclicBarrier b, int nthreads) { + Stage(Queue q, CyclicBarrier b, int nthreads) { queue = q; barrier = b; this.nthreads = nthreads; @@ -76,7 +78,7 @@ public class ConcurrentQueueLoops { static int compute(int l) { if (l == 0) return (int) System.nanoTime(); - int nn = (l >>> 7) & workMask; + int nn = (l >>> 7) & workMask; while (nn-- > 0) l = LoopHelpers.compute6(l); return l; @@ -117,8 +119,9 @@ public class ConcurrentQueueLoops { } } - static void oneRun(Class klass, int n) throws Exception { - Queue q = (Queue) klass.newInstance(); + static void oneRun(Class klass, int n) throws Exception { + Queue q = + (Queue) klass.getConstructor().newInstance(); LoopHelpers.BarrierTimer timer = new LoopHelpers.BarrierTimer(); CyclicBarrier barrier = new CyclicBarrier(n + 1, timer); ArrayList> results = new ArrayList>(n);