Я пытаюсь сформировать кокизное и последовательное понимание применения ленивой оценки в API потоков Java.Java-потоки lazy vs fusion vs short-circuiting
Вот что я в настоящее время понимаю:
- элементов только потребляемся как они необходимы, то есть потоки ленивые, и промежуточные операции ленивые таким образом, что, например, фильтр, будет фильтроваться только тогда, когда это необходимо.
- промежуточные операции могут быть соединены вместе (если они не имеют гражданства).
- Операции короткого замыкания не требуют обработки всего потока.
Что я хочу сделать, это объединить все эти идеи и обеспечить, чтобы я не искажал ничего. Я нахожу это сложным, потому что всякий раз, когда я читаю какую-либо литературу о потоках Java, она продолжает говорить, что они ленивы или используют ленивую оценку, а затем очень много взаимозаменяемо начинает говорить об оптимизации, такие как слияние и короткое замыкание.
Так было бы правильно сказать следующее?
слитый как ленивым оценка была выполнена в потоке API - т.е. элемент потребляется, и операции сплавлены вместе, где это возможно. Я думаю, что если бы фьюжн не существовало, то, конечно, мы вернулись к нетерпеливой оценке, поскольку альтернативой было бы просто обработать все элементы для каждой промежуточной операции, прежде чем переходить на следующую?
короткое замыкание возможно без слияния или ленивой оценки, но очень помогает в контексте потоков посредством реализации этих двух принципов?
Буду признателен за дальнейшую проницательность и ясность в этом вопросе.
Ничего себе, лучшая визуализация потоков Java никогда! – apangin
@ Тагир Валеев Спасибо за очень наглядный ответ - самое полезное. Я не чувствую, что вы ответили на несколько моих исходных вопросов, но это было: «Сплав - это то, как ленивая оценка была реализована в потоковом API. Я думаю, что если фьюжн не существовал, то, безусловно, мы были бы назад к нетерпеливой оценке »и, кроме того,« короткое замыкание возможно без слияния »? и если это так, то это будет просто нетерпеливая оценочная версия, которая только прекращает работу терминала, а не обрабатывает промежуточные операции. – Tranquility
@Tranquility, я только что объяснил, что слияние - это способ объединения нескольких операционных систем вместе. Вы можете выполнять их шаг за шагом без слияния и все еще иметь ленивую оценку. –