17 *
18 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
19 * or visit www.oracle.com if you need additional information or have any
20 * questions.
21 */
22
23 /*
24 * This file is available under and governed by the GNU General Public
25 * License version 2 only, as published by the Free Software Foundation.
26 * However, the following notice accompanied the original version of this
27 * file:
28 *
29 * Written by Doug Lea with assistance from members of JCP JSR-166
30 * Expert Group and released to the public domain, as explained at
31 * http://creativecommons.org/licenses/publicdomain
32 */
33
34 /*
35 * @test
36 * @bug 4486658
37 * @compile MapLoops.java
38 * @run main/timeout=1600 MapLoops
39 * @summary Exercise multithreaded maps, by default ConcurrentHashMap.
40 * Multithreaded hash table test. Each thread does a random walk
41 * though elements of "key" array. On each iteration, it checks if
42 * table includes key. If absent, with probability pinsert it
43 * inserts it, and if present, with probability premove it removes
44 * it. (pinsert and premove are expressed as percentages to simplify
45 * parsing from command line.)
46 */
47
48 import java.util.*;
49 import java.util.concurrent.*;
50
51 public class MapLoops {
52 static int nkeys = 10000;
53 static int pinsert = 60;
54 static int premove = 2;
55 static int maxThreads = 100;
56 static int nops = 100000;
57 static int removesPerMaxRandom;
208 ++position;
209 map.put(k, k);
210 return 2;
211 }
212
213 // Uncomment to add a little computation between accesses
214 // total += LoopHelpers.compute1(k.intValue());
215 total += r;
216 return 1;
217 }
218
219 public void run() {
220 try {
221 barrier.await();
222 int ops = nops;
223 while (ops > 0)
224 ops -= step();
225 barrier.await();
226 }
227 catch (Throwable throwable) {
228 synchronized(System.err) {
229 System.err.println("--------------------------------");
230 throwable.printStackTrace();
231 }
232 throwables.add(throwable);
233 }
234 }
235 }
236 }
|
17 *
18 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
19 * or visit www.oracle.com if you need additional information or have any
20 * questions.
21 */
22
23 /*
24 * This file is available under and governed by the GNU General Public
25 * License version 2 only, as published by the Free Software Foundation.
26 * However, the following notice accompanied the original version of this
27 * file:
28 *
29 * Written by Doug Lea with assistance from members of JCP JSR-166
30 * Expert Group and released to the public domain, as explained at
31 * http://creativecommons.org/licenses/publicdomain
32 */
33
34 /*
35 * @test
36 * @bug 4486658
37 * @compile -source 1.5 MapLoops.java
38 * @run main/timeout=1600 MapLoops
39 * @summary Exercise multithreaded maps, by default ConcurrentHashMap.
40 * Multithreaded hash table test. Each thread does a random walk
41 * though elements of "key" array. On each iteration, it checks if
42 * table includes key. If absent, with probability pinsert it
43 * inserts it, and if present, with probability premove it removes
44 * it. (pinsert and premove are expressed as percentages to simplify
45 * parsing from command line.)
46 */
47
48 import java.util.*;
49 import java.util.concurrent.*;
50
51 public class MapLoops {
52 static int nkeys = 10000;
53 static int pinsert = 60;
54 static int premove = 2;
55 static int maxThreads = 100;
56 static int nops = 100000;
57 static int removesPerMaxRandom;
208 ++position;
209 map.put(k, k);
210 return 2;
211 }
212
213 // Uncomment to add a little computation between accesses
214 // total += LoopHelpers.compute1(k.intValue());
215 total += r;
216 return 1;
217 }
218
219 public void run() {
220 try {
221 barrier.await();
222 int ops = nops;
223 while (ops > 0)
224 ops -= step();
225 barrier.await();
226 }
227 catch (Throwable throwable) {
228 synchronized (System.err) {
229 System.err.println("--------------------------------");
230 throwable.printStackTrace();
231 }
232 throwables.add(throwable);
233 }
234 }
235 }
236 }
|