У меня есть коллекция Callables и ExecutorService. Когда я вызываюAll, я возвращаю список объектов Future. Как я могу определить, какой будущий объект сопоставлен с тем, что Callable before the Future завершает? Я могу сказать потом потому чтоJava Concurrency: Как я могу определить, какое будущее принадлежит к которому Callable во время обработки?
Код:
ExecutorService es = .....;
Collection<Callables> uniqueCallables = .....; // each Callable is unique!
List<Future> futures = es.invokeAll(uniqueCallables);
// TODO--find unique Future A which is the future for Callable A!
Просто вне интереса, зачем вам нужна такая информация? –
Фьючерсы могут (будут) заполняться в разное время, возможно, минуты друг от друга. Я различаю различные типы задач по ID. Кто-то другой может захотеть запустить ту же задачу (по ID), но не осознает, что она уже выполняется. invokeAll был плохим выбором - в итоге с отправкой, потому что invokeAll не возвращается до тех пор, пока все задачи не будут завершены/тайм-аут. – CStepnitz