Прервать RecursiveTask с заданным результатом?

Я сталкиваюсь со следующей проблемой:

Я пересекаюсь с ConcurrentHashMap с помощью RecursiveAction для разделения и захвата карты.

Проблема в том, что мне нужно вернуть первый результат, найденный по определенным критериям, или, если ничего не найдено, мне нужно вернуть ноль, когда все "разделенные задачи" выполнены.

На данный момент (из-за того, что я использую RecursiveAction вместо RecursiveTask) я просто могу вызвать метод и выполнить "return;" когда задание найдено, но оно очень плохо пахнет.

Все решения, которые я пытался реализовать с помощью RecursiveTask, должны были пройти всю карту (делая все разбиения), пока я не смогу вернуть значение.

Есть ли возможность вернуть заданный результат и отменить задачу, чтобы предотвратить дальнейшую обработку с помощью RecursiveTask?

1 ответ

Решение

Возможно, этот старый ответ SO поможет. Это форма "короткого замыкания", и вам нужно сделать все это самостоятельно. Или вы можете использовать пакет из другого.

Другие вопросы по тегам