У меня есть ряд параллельных задач для запуска. Если какой-либо из них потерпит неудачу, я хочу прервать их все и ждать завершения. Но при условии, что ни один из них не сработает, я хочу подождать, пока все они закончат.
ExecutorCompletionService похоже почти то, что я хочу здесь, но, похоже, нет способа узнать, все ли мои задачи выполнены, кроме как путем отдельного подсчета количества задач. (Обратите внимание, что оба примера в Javadoc для ExecutorCompletionService отслеживают количество «n» задач и используют его, чтобы определить, завершена ли служба.)
Я что-то пропускаю или мне действительно нужно самому писать этот код?