0

У меня возникла следующая проблема:Отменить рекурсивную задачу с заданным результатом?

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

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

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

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

Есть ли какая-либо возможность вернуть заданный результат и отменить задачу для превентивной обработки фугии с помощью рекурсивной тары?

+0

Это должно быть просто - просто не создавайте подзадачи? – immibis

+0

как вы это понимаете? нет fork/join? – user2874177

ответ

0

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