Почему thenAcceptAsync () не всегда выполняется после завершения родительского этапа? - PullRequest
0 голосов
/ 29 декабря 2018

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

public static void main(String[] args) {

    int coreCount = Runtime.getRuntime().availableProcessors();
    ExecutorService service = Executors.newFixedThreadPool(coreCount);

    CompletableFuture.supplyAsync(getStringSupplier(),service)
                     .thenAcceptAsync(getStringConsumer(),service);

    System.out.println(" running main thread");

    service.shutdown();
}

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

...