Прежде чем ответить на ваш вопрос, я настоятельно рекомендую вам посмотреть ExecutorServices
, например, ThreadPoolExecutor
.
Теперь, чтобы ответить на ваш вопрос:
Если вы хотите дождаться окончания предыдущего потока, прежде чем начинать следующий, вы добавляете thread.join()
между:
for(int i = 0; i < 10; i++) {
thread = new Thread(this);
thread.start();
thread.join(); // Wait for it to finish.
}
Если вы хотите запустить 10 потоков, позволить им выполнить свою работу, а затем продолжить, вы join
на них после цикла:
Thread[] threads = new Thread[10];
for(int i = 0; i < threads.length; i++) {
threads[i] = new Thread(this);
threads[i].start();
}
// Wait for all of the threads to finish.
for (Thread thread : threads)
thread.join();