public RunnerThread(AtomicLong timeCounter, int numIters, FacetSpec fspec, IEnumerable<IFacetAccessible> list1) { _timeCounter = timeCounter; _numIters = numIters; _fspec = fspec; _list1 = list1; }
public static void Main(string[] args) { int nThreads = 2; int numIters = 200; string fname1 = "facet1"; //string fname2 = "facet2"; // NOT USED FacetSpec fspec = new FacetSpec(); fspec.ExpandSelection = (true); fspec.MaxCount = (50); fspec.MinHitCount = (1); fspec.OrderBy = FacetSpec.FacetSortSpec.OrderHitsDesc; List<IFacetAccessible> list1 = new List<IFacetAccessible>(numSegs); for (int i = 0; i < numSegs; ++i) { list1.Add(BuildSubAccessible(fname1, i, fspec)); } //List<FacetAccessible> list2 = new List<FacetAccessible>(numSegs); //for (int i = 0; i < numSegs; ++i) //{ // list2.add(BuildSubAccessible(fname2, i, fspec)); //} AtomicLong timeCounter = new AtomicLong(); Thread[] threads = new Thread[nThreads]; RunnerThread[] threadStates = new RunnerThread[nThreads]; for (int i = 0; i < threads.Length; ++i) { var threadState = new RunnerThread(timeCounter, numIters, fspec, list1); threadStates[i] = threadState; threads[i] = new Thread(new ThreadStart(threadState.Run)); } // System.out.println("press key to start load test... "); // { // BufferedReader br = new BufferedReader(new InputStreamReader( // System.in)); // int ch = br.read(); // char c = (char) ch; // } foreach (Thread t in threads) { t.Start(); } foreach (Thread t in threads) { t.Join(); } Console.WriteLine("average time: " + timeCounter.Get() / numIters / nThreads + " ms"); }