Как сделать паузу main (), пока все остальные потоки не прекратятся?

В моей программе я создаю несколько потоков в методе main (). Последняя строка в методе main - это вызов System.out.println (), который я не хочу вызывать, пока все потоки не прекратятся. Я попытался вызвать Thread.join () для каждого потока, однако он блокирует каждый поток, чтобы они выполнялись последовательно, а не параллельно.

Есть ли способ блокировать поток main () до тех пор, пока все остальные потоки не завершат выполнение? Вот соответствующая часть моего кода:

public static void main(String[] args) {

//some other initialization code

//Make array of Thread objects
Thread[] racecars = new Thread[numberOfRaceCars];

//Fill array with RaceCar objects
for(int i=0; i<numberOfRaceCars; i++) {
    racecars[i] = new RaceCar(laps, args[i]);
}

//Call start() on each Thread
for(int i=0; i<numberOfRaceCars; i++) {
    racecars[i].start();
    try {
        racecars[i].join(); //This is where I tried to using join()
                            //It just blocks all other threads until the current                            
                            //thread finishes.
    } catch(InterruptedException e) {
        e.printStackTrace();
    }
}

//This is the line I want to execute after all other Threads have finished
System.out.println("It's Over!");

}

Спасибо за помощь, ребята!

Эрик

Ответы на вопрос(9)

Ваш ответ на вопрос