Прервать RecursiveTask с заданным результатом?
Я сталкиваюсь со следующей проблемой:
Я пересекаюсь с ConcurrentHashMap с помощью RecursiveAction для разделения и захвата карты.
Проблема в том, что мне нужно вернуть первый результат, найденный по определенным критериям, или, если ничего не найдено, мне нужно вернуть ноль, когда все "разделенные задачи" выполнены.
На данный момент (из-за того, что я использую RecursiveAction вместо RecursiveTask) я просто могу вызвать метод и выполнить "return;" когда задание найдено, но оно очень плохо пахнет.
Все решения, которые я пытался реализовать с помощью RecursiveTask, должны были пройти всю карту (делая все разбиения), пока я не смогу вернуть значение.
Есть ли возможность вернуть заданный результат и отменить задачу, чтобы предотвратить дальнейшую обработку с помощью RecursiveTask?
1 ответ
Возможно, этот старый ответ SO поможет. Это форма "короткого замыкания", и вам нужно сделать все это самостоятельно. Или вы можете использовать пакет из другого.