У меня есть класс, который порождает кучу потоков и должен ждать, пока все порожденные потоки не будут завершены. (Мне нужно рассчитать время завершения всех потоков).
MainClass порождает все потоки, а затем проверяет, все ли потоки завершены, прежде чем он сможет вызвать себя завершенным.
Будет ли эта логика работать. Если так, есть ли лучший способ сделать это? Если нет, я бы хотел лучше понять этот сценарий.
class MainClass{
private boolean isCompleted;
...
for(task : tasks){
threadpool.execute(task);
}
for(task : tasks){
if(!task.isCompleted()){
task.wait()
}
}
isCompleted = true;
}
class Task{
public void run(){
....
....
synchronized(this){
task.completed = true;
notifyAll();
}
}
}