public void fillArrayConcurrently() { try { ArrayWorker[] threads = new ArrayWorker[WorkerMarks.length]; for (int i = 0; i < WorkerMarks.length; i++) { threads[i] = new ArrayWorker(array, MaxWorkerChar, WorkerMarks[i]); } for (int i = 0; i < WorkerMarks.length; i++) { threads[i].start(); } for (int i = 0; i < WorkerMarks.length; i++) { threads[i].join(); } for (int i = 0; i < WorkerMarks.length; i++) { occurrences[i] = array.countOccurrences(WorkerMarks[i]); } } catch (InterruptedException e) { System.out.println(e.getMessage()); } }