Skip to content

Commit b005180

Browse files
authored
Update RxJava详解(上).md
1 parent b6bac29 commit b005180

File tree

1 file changed

+25
-1
lines changed

1 file changed

+25
-1
lines changed

RxJavaPart/RxJava详解(上).md

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -364,6 +364,30 @@ observable.subscribe(onNextAction, onErrorAction, onCompletedAction);
364364
在主线程中去执行`Subscriber`。另外,根据响应式函数编程的概念,`Subscribers`更应该做的事情是`响应`,响应`Observable`发出的事件,而不是去修改。
365365
那该怎么办呢? 这就要用到下面的部分要讲的操作符。
366366

367+
368+
369+
接口变化
370+
---
371+
372+
`RxJava 2.x`拥有了新的特性,其依赖于4个基础接口,它们分别是:
373+
- `Publisher`
374+
- `Subscriber`
375+
- `Subscription`
376+
- `Processor`
377+
其中最核心的莫过于`Publisher``Subscriber``Publisher`可以发出一系列的事件,而`Subscriber`负责和处理这些事件。
378+
379+
其中用的比较多的自然是`Publisher``Flowable`,它支持背压(`backpressure`)。关于背压给个简洁的定义就是:
380+
381+
> 背压是指在异步场景中,被观察者发送事件速度远快于观察者的处理速度的情况下,一种告诉上游的被观察者降低发送速度的策略。
382+
383+
简而言之,背压是流速控制的一种策略。
384+
其实`RxJava 2.x`最大的改动就是对于`backpressure`的处理,为此将原来的`Observable`拆分成了新的`Observable``Flowable`,同时其他相关部分也同时进行了拆分。
385+
386+
![image](https://raw.githubusercontent.com/CharonChui/Pictures/master/rxjava1vs2.png?raw=true)
387+
388+
389+
`RxJava 2.x`中,`Observable`用于订阅`Observer`,不再支持背压(`1.x`中可以使用背压策略),而`Flowable`用于订阅`Subscriber`,是支持背压的。
390+
367391
操作符(`Operators`)
368392
---
369393

@@ -631,4 +655,4 @@ Observable.interval(1, TimeUnit.SECONDS, AndroidSchedulers.mainThread())
631655
---
632656

633657
- 邮箱 :charon.chui@gmail.com
634-
- Good Luck!
658+
- Good Luck!

0 commit comments

Comments
 (0)