关于RxJava的一些翻译

关于RxJava一些翻译

UpStream and DownStrea 上游和下游

在RxJava中数据流可以分为数据源,数据源的操作和数据消费者。
站在操作的位置,可以把输入看作上游,把输出看作下游。

Object in motion 运动对象

在数据流中,以下看成同义词,emission,emits,item,signal,data,message

Backpressure 背压调节

数据在操作流中的不同阶段会有不同的速度,难免有一种情况,速度不匹配问题。比如上游数据较快,下游处理不过来,会选择性地丢弃或跳过,或者下游请求上游加快数据分发速度。背压,是下游对上游地反馈。

Assembly time 装配阶段

数据流分发之前需要一个装配时间,这个阶段数据不会流动且不会有副作用。
比如:

Flowable<Integer> flow = Flowable.range(1,5)
    .map(v -> v*v)
    .filter(v -> v%3 ==0);

Subscription time 订阅阶段

这是一个暂时地中间状态,subscribe()方法在调用时触发,此后整个数据流处理链建立。

flow.subscribe(System.out::println);

这个时间点doOnSubscribe()方法会被触发,称之为订阅副作用发生地时间。要注意,不同源在这个点处理不同,比如有地源会阻塞直到这个订阅动作完成才会分发数据,而有点会订阅发生时就会分发数据。(分发数据和订阅时在不同线程里发生的)

Running time 运行阶段

这个阶段开始于数据源发送数据,或发送错误信号或发送完成信号,即就是开始数据流开始流动的起点。

Observable.create(emitter -> {
    while( !emitter.isDisposed() ){
            long time=System.currentTimeMillis();
            emitter.onNext(time);
            if(time%2 != 0){ 
                emitter.onError(new IllegalStateException("Old Misslisecond!"));
                break;
            }
        }
    }
})
.subscribe(System.out::println, Throwable::printStackTrace);

Simple background computation 简单的后台运算

后台运算是RxJava的一个常见的应用,后台操作比如说网络请求,耗时的计算。

Flowable.fromCallable(() -> {
        Thread.sleep(1000); //模拟后台操作
        return "done";
})
.subscribeOn(Schedulers.io())   //做运算的线程
.osbserveOn(Schedulers.single())    //一般就是处理结果的线程,android中就是主线程
.subscrib(System.out::println, Throwable::printStackTrace);

Thread.sleep(2000); //当前线程等到数据流完成

Schedulers 调度器

在Rxjava中实现异步操作,不是直接使用Thread和ExecutorService,而是使用了更抽象的Schedulers工具类。
可以使用以下,来指定操作所在线程。
* Schedulers.compation() 固定的数量的线程池来处理一些繁忙的数据操作。
* Schedulers.io() 运行一些需要阻塞的操作
* Schedulers.single 运行一些操作在同一个线程中,符合队列。
* Schedulers.trampoline(). 常用测试目的

Concurrency within a flow 流中的并发

Parallel processing 并行处理

依赖子流

。。。未完待续

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值