java.util.concurrent.CompletableFuture в Spring
Продолжаю изучать многопоточность по исходникам spring-core.
Искал по пакету java.util.concurrent
и нашел:
Я не понял зачем нужно оборачивать делегата и иметь возможность отменять его. Я лишь могу предположить, что делегат обрабатывается отдельно, но хочется иметь возможность отменять делегата вместе с какой-то еще выполняемой задачей. Вот так выглядит CompletableFuture Читайте перед сном: вы либо уснете, либо узнаете что-то интересное из хорошо написанного и документированного кода Doug Lea, специалиста в области многопоточного программирования. Он соавтор крутейшей книги по многопоточности в Java:Java Concurrency in Practice
С DelegatingCompletableFuture
я решил посмотрть коммиты на github.
И все равно не понял зачем он.
Почему нельзя отменять напрямую делегата, не создавая обертку.
Тем более, что никакие методы не переопределяются и делегата можно только отменять, а все остальные вызовы вернут какую-то ересь.
Но Juergen Hoeller должно быть виднее, пожалуй спрошу его напрямую)
Ну и конечно можно сделать свой пулл реквест и засабмитить в Spring.
Если примут будешь контрибьютором, если не примут объяснят в чем неправ и зачем нужен DelegatingCompletableFuture
.