4 |
|
* http://creativecommons.org/publicdomain/zero/1.0/ |
5 |
|
*/ |
6 |
|
|
7 |
< |
import java.util.concurrent.*; |
8 |
< |
import java.util.concurrent.locks.*; |
9 |
< |
import java.util.concurrent.atomic.*; |
10 |
< |
import java.util.*; |
7 |
> |
import java.util.concurrent.CyclicBarrier; |
8 |
> |
import java.util.concurrent.ExecutorService; |
9 |
> |
import java.util.concurrent.Executors; |
10 |
> |
import java.util.concurrent.atomic.AtomicInteger; |
11 |
|
|
12 |
|
public final class NoopSpinLockLoops { |
13 |
|
static final ExecutorService pool = Executors.newCachedThreadPool(); |
24 |
|
new ReentrantLockLoop(1).test(); |
25 |
|
print = true; |
26 |
|
|
27 |
< |
int k = 1; |
28 |
< |
for (int i = 1; i <= maxThreads;) { |
27 |
> |
for (int k = 1, i = 1; i <= maxThreads;) { |
28 |
|
System.out.print("Threads: " + i); |
29 |
|
new ReentrantLockLoop(i).test(); |
30 |
|
Thread.sleep(100); |
77 |
|
int x = sum + 1; |
78 |
|
int n = iters; |
79 |
|
while (n-- > 0) { |
80 |
< |
while (!lock.compareAndSet(0, 1)) ; |
80 |
> |
do {} while (!lock.compareAndSet(0, 1)); |
81 |
|
x = LoopHelpers.compute4(x); |
82 |
|
lock.set(0); |
83 |
|
if ((x += readBarrier) == 0) |