Почему пустой список?
Документ объясняет, что (выделено мое):
Этот метод отменяет как существующие, так и не выполненные задачи, , чтобы разрешить завершение в присутствиизависимостей задачи .Таким образом, метод всегда возвращает пустой список (в отличие от некоторых других исполнителей).
Почему?
Поскольку ForkJoinPool
является «специальной» реализацией ExecutorService
.
У него могут быть некоторые зависимости задачи, связанные с выполненными вилками.
Например, в приведенном ниже примере, если отправленная задачаостановлен, вы также хотите, чтобы подзадача 1 и подзадача 2 также были завершены:
Вот почему при остановке задач для экземпляра ForkJoinPool
вывернет List
, что означает, что больше никаких задач не ожидается.Таким образом, любые задачи, ожидающие завершения некоторых других задач или обрабатываемые в настоящий момент, также прекращаются как более не требующиеся.
Хотя я не уверен, что возврат метода (я не нашел подсказок по этому поводу) будет использоваться длятекущая реализация.