CompletableFuture.runAsync
указано:
Возвращает новый CompletableFuture, который асинхронно завершается задачей, запущенной в
ForkJoinPool.commonPool()
после выполнения данного действия.
Однако, насколько я могу судить, runAsync
отправляет задачу ForkJoinPool.commonPool()
только тогда, когда ForkJoinPool.getCommonPoolParallelism() > 1
. Если нет, он вручную создает новый Thread
для каждой отправленной задачи.
Почему именно так?