Важную штуку про FJP надо понять, если я непонятно объяснил. В обычном пуле предполагается, что время деления на задачи и обмен задачами между сабмиттером и воркерами несущественно по отношению ко времени собственно исполнения листовых задач. А в FJP делением задачи на подзадачи "на месте" можно распараллелить и эту хрень! Чем надо нагло пользоваться.
а как, оно ждет результата? Я так понимаю, на ожидающие подзадачи, мы вешаем колбек. А внутри, у подзадач, есть некий счетчик, атомарный, который если равен числу ожидающих задач - выполняет колбек? Ну не счетчик выполняет колбек, а тот кто его контроллирует.