У меня есть класс, который порождает кучу потоков и должен ждать, пока все порожденные потоки будут завершены. (Мне нужно рассчитать время для завершения всех потоков.)
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();
}
}
}