Когда метод должен возвращать CompletableFuture? - PullRequest
0 голосов
/ 25 апреля 2018

Каковы общие рекомендации относительно того, когда метод должен возвращать CompletableFuture? Предположим, есть два класса A и B, где у класса B есть метод executeTask (), который выполняет много операций ввода-вывода, а класс A вызывает метод executeTask (). В Java можно написать многопоточный код, используя следующие подходы:

  • Пусть вызывающий метод решает, выполнять ли метод асинхронно с использованием ThreadPool. В этом случае A будет вызывать метод executeTask () асинхронно, поэтому класс B не должен делать свои методы асинхронными.
  • Пусть метод executeTask () возвращает Future или CompletableFuture, чтобы класс A просто вызывал executeTask ().

Каковы общие рекомендации относительно того, какой подход является рекомендуемым?

1 Ответ

0 голосов
/ 26 апреля 2018

Краткий ответ

Вы решаете.

Немного более длинный ответ

Это зависит от:

  • Когда вы знаете, что вызывающие абоненты чаще всего хотят ждать завершения performTask(), сделайте метод синхронным.

  • Когда вы знаете, что звонящие чаще всего захотят продолжать делать что-то сразу после вызова performTask(), и либо не заботятся о результате, либо проверят его позже, сделайте метод асинхронным.

  • Если вы не знаете, смотрите короткий ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...