Основная цель get () - дождаться завершения задания и вернуть результат.
Если ваша задача - Runnable , а не Callable , она вернет Void, так что, как вы указали, нет смысла проверять результат.Для таких задач вы выполняете get () только до и ждите, пока они завершатся .
Основными преимуществами CompletableFuture являются методы, которые позволяют обрабатывать исключения и дополнительно обрабатывать данные.У него также есть методы, которые ждут завершения задачи all и из набора задач ComplatableFuture.Так что работать в многопоточной среде намного проще.Метод get()
работает так же, как и для класса Future .
ОБНОВЛЕНИЕ:
Если вам не требуется, чтобы они завершились до дальнейшей передачи в вашем приложении, вам вовсе не нужно вызывать метод get ().Но было бы разумно сохранить ссылку на них и подождать, пока они завершат или отменит их, прежде чем выходить из программы.В какой-то момент программы вы, вероятно, захотите узнать, завершились ли они.
Но если вы хотите завершить выполнение, прежде чем идти дальше, вы можете использовать CompletableFuture.allOf()
.
Inв некоторых случаях также целесообразно добавить тайм-аут к их выполнению, чтобы у вас не было зависания потока в вашем приложении.Это может быть опасно, особенно в мобильной среде.
Так что все зависит от вашего бизнес-кейса.