BUG-7464: Initial import of java-concurrent-hash-trie-map
[yangtools.git] / third-party / triemap / src / test / java / com / romix / scala / collection / concurrent / TestMultiThreadInserts.java
1 package com.romix.scala.collection.concurrent;\r
2 \r
3 import java.util.concurrent.ExecutorService;\r
4 import java.util.concurrent.Executors;\r
5 import java.util.concurrent.TimeUnit;\r
6 \r
7 import org.junit.Test;\r
8 \r
9 public class TestMultiThreadInserts {\r
10     @Test\r
11     public void testMultiThreadInserts () {\r
12         final int nThreads = 2;\r
13         final ExecutorService es = Executors.newFixedThreadPool (nThreads);\r
14         final TrieMap<Object, Object> bt = new TrieMap<Object, Object> ();\r
15         for (int i = 0; i < nThreads; i++) {\r
16             final int threadNo = i;\r
17             es.execute (new Runnable () {\r
18                 @Override\r
19                 public void run () {\r
20                     for (int j = 0; j < 500 * 1000; j++) {\r
21                         if (j % nThreads == threadNo) {\r
22                             bt.put (Integer.valueOf (j), Integer.valueOf (j));\r
23                         }\r
24                     }\r
25                 }\r
26             });\r
27         }\r
28 \r
29         es.shutdown ();\r
30         try {\r
31             es.awaitTermination (3600L, TimeUnit.SECONDS);\r
32         } catch (final InterruptedException e) {\r
33             e.printStackTrace ();\r
34         }\r
35         \r
36         for (int j = 0; j < 500 * 1000; j++) {\r
37             final Object lookup = bt.lookup (Integer.valueOf (j));\r
38             TestHelper.assertEquals (Integer.valueOf (j), lookup);\r
39         }\r
40     }\r
41 }\r