public void train() { int n = txt_rdr.getSize(); assert (n == ans.size() && n != 0); ExecutorService fre_executor = Executors.newFixedThreadPool(NTHREADS); ExecutorService dict_executor = Executors.newFixedThreadPool(NTHREADS); for (int i = 0; i < n; i++) { Runnable task = new FreRunnable(i); fre_executor.execute(task); } fre_executor.shutdown(); while (!fre_executor.isTerminated()) {} for (String s : f_rec.getRecordedStrings()) { Runnable task = new DictRunnable(s); dict_executor.execute(task); } dict_executor.shutdown(); while (!dict_executor.isTerminated()) {} }