RxJava(九)并行编程

本文探讨了RxJava中实现并行编程的方法,包括Java8的并行流、使用FlatMap进行转换、通过Round-Robin实现负载均衡的groupBy + flatMap组合,以及RxJava的ParallelFlowable操作符。这些技术能提升多核处理器环境下任务处理的效率。
摘要由CSDN通过智能技术生成

RxJava的并行编程

RxJava发射的数据流虽然经过各种变换,切换线程,但并没有产生并行效果。
并行:多个处理器或多核处理器同时处理多个任务。
并发:单个处理器同时处理多个任务。
1.Java8并行流 集合上调用parallelStream

@TargetApi(24)
    private void parallelStream(){
   
        mList.parallelStream()
                .map(new java.util.function.Function<String, String>() {
   
                    @Override
                    public String apply(String s) {
   
                        return s.toUpperCase();
                    }
                }).forEach(new java.util.function.Consumer<String>() {
   
            @Override
            public void accept(String s) {
   
                
            }
        });
    }

2.RxJava借助FlatMap实现
FlatMap:将这个Observable转换为多个发射原始数据的Observables,并收集发射的全部数据,不保证顺序,统一发射出去。若用了自定义调度器,则需要在doFinally中关闭调度器。

3.使用Round-Robin实现负载均衡groupBy + flatMap
负载均衡:把来自用户的请求,轮流发送给服务器进行处理。此处把数据分组,然后一起发送处理,减少了Observable的创建,从而节省了系统资源。

Observable.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值