java - Spring Reactor 合并与 Concat

标签 java spring flux reactor

我在玩 Spring react 器,我看不出 concatmerge 运算符之间有任何区别

这是我的例子

    @Test
    public void merge() {
        Flux<String> flux1 = Flux.just("hello").doOnNext(value -> {
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        });
        Flux<String> flux2 = Flux.just("reactive").doOnNext(value -> {
            try {
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        });
        Flux<String> flux3 = Flux.just("world");
        Flux.merge(flux1, flux2, flux3)
                .map(String::toUpperCase)
                .subscribe(System.out::println);
    }

    @Test
    public void concat() {
        Flux<String> flux1 = Flux.just("hello").doOnNext(value -> {
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        });
        Flux<String> flux2 = Flux.just("reactive").doOnNext(value -> {
            try {
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        });
        Flux<String> flux3 = Flux.just("world");
        Flux.concat(flux1, flux2, flux3)
                .map(String::toUpperCase)
                .subscribe(System.out::println);    
}

两者的行为完全相同。有人可以解释这两种操作之间的区别吗?

最佳答案

merge 和 concat 的本质区别在于,在 merge 中,两个流都是实时的。在 concat 的情况下,第一个流被终止,然后另一个流被连接到它。

Concat enter image description here


Merge enter image description here

关于java - Spring Reactor 合并与 Concat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48478420/

相关文章:

Java Resultset 和 AbstractTableModel 更新 JTable

java - 通用类型和 HTTP 出站网关结果

javascript - react : Removing a class styling after componentWillUpdate

java - 如何按组聚合通量上的元素/如何按组减少?

java - MapReduce倒排索引程序

java - 正确匹配 Java 字符串文字

java - 即使使用 MathContext 也会出现非终止十进制错误

java - Spring Tool Suite 找不到 JDBC 驱动程序类

java - Hibernate读取MySQL中的脏数据

java - 有没有办法合并多个单声道错误信号?