Используйте две петли.В первом из них вы должны запустить все потоки:
for (int i=0;i< MyThreadArray.length: i++){
MyThreadArray[i].start()
}
Это запустит все из них.После этого вы хотите дождаться их завершения:
for (int i=0;i< MyThreadArray.length: i++){
MyThreadArray[i].join()
// notice ^^^ you had a typo there
}
Это будет ждать окончания каждого потока, прежде чем двигаться дальше.
Кроме того, обратите внимание, что эта конкретная логика:
for (int i=0;i< MyThreadArray.length: i++){
MyThreadArray[i].start()
MyThreadArray[i].join()
}
- это просто худшая версия , а не , использующая параллелизм, поскольку она будет ожидать каждого отдельного потока последовательно , дополнительно добавляя некоторые издержки при запуске Thread
.