Точка (есть на самом деле 17) статей, чтобы указать на то, что F/J Framework больше исследовательского проекта, чем общего назначения разработка коммерческих приложений.
Критикуйте объект, а не мужчину. Попытка сделать это сложнее, когда основная проблема с каркасом заключается в том, что архитектор является профессором/ученым, а не инженером/коммерческим разработчиком. Консолидация PDF, загружаемая из этой статьи, в большей степени связана с проблемой использования исследовательских стандартов, а не технических стандартов.
Параллельные потоки работают нормально, пока вы не попытаетесь их масштабировать. Рамка использует технологию pull; запрос переходит в очередь отправки, поток должен вытащить запрос из очереди отправки. Задача возвращается в дефис нисходящей нити, другие потоки должны вытаскивать Task из deque. Этот метод не очень хорошо масштабируется. В технологии push каждая задача разбивается на каждый поток в системе. Это работает намного лучше в крупномасштабных средах.
Есть много других проблем с масштабированием, поскольку даже Павел Сандос из Oracle указал: Например, если у вас есть 32 ядра и они выполняют Stream.of (s1, s2, s3, s4) .flatMap (x -> x) .reduce (...), то в лучшем случае вы будете использовать только 4 ядра. В статье указывается, что с загружаемым программным обеспечением масштабирование не работает, и parquential technique необходим, чтобы избежать переполнения стека и OOME.
Использование параллельных потоков. Но остерегайтесь ограничений.
Я не уверен, что автор этой статьи совершенно непредвзято. Посмотрите, на кого он работает, и что они делают. Я не говорю, что он ошибается или нечестен, но он/она предлагает продукт, который, похоже, конкурирует с стандартной платформой fork-join Oracle. Прочитайте, что он говорит о «серьезных недостатках» с этим. –
@ Stephen Если вы хотите обратиться ко мне напрямую, я бы дал вам длинную историю того, откуда пришли статьи. Продукты с открытым исходным кодом, которые я поддерживаю, возвращаются на 30 лет. – edharned
@edharned Я переношу свой проект на Java 8 и планирую использовать Streams. Это критическое приложение, связанное с фондовым рынком, которое выполняет множество вычислений в разумные сроки. Но Streams использует только инфраструктуру FJ, так какие же пункты следует заботиться, прежде чем использовать их? –