Rx java rxjava中UnicastSubject和ReplaySubject的区别
从 说:Rx java rxjava中UnicastSubject和ReplaySubject的区别,rx-java,rx-android,reactive,Rx Java,Rx Android,Reactive,从 说: ReplaySubject:缓冲它观察到的所有项目并将它们回放给订阅的任何观察者的主题 UnicastSubject:一种Subject变体,它缓冲事件,直到单个订户到达并将其重播到该订户,并且一旦订户赶上并请求无限量的事件,就可能切换到直接传送 另外,我在实现这两个方面的一个不同之处是,单播主体只能有一个订户(正如名称单播所证明的那样),而ReplaySubject可以有尽可能多的订户。而且,UnicastSubject可以在单个订户订阅后释放内部缓冲区,而ReplaySubject
ReplaySubject:缓冲它观察到的所有项目并将它们回放给订阅的任何观察者的主题 UnicastSubject:一种Subject变体,它缓冲事件,直到单个订户到达并将其重播到该订户,并且一旦订户赶上并请求无限量的事件,就可能切换到直接传送
另外,我在实现这两个方面的一个不同之处是,单播主体只能有一个订户(正如名称单播所证明的那样),而ReplaySubject可以有尽可能多的订户。而且,
UnicastSubject
可以在单个订户订阅后释放内部缓冲区,而ReplaySubject
必须保留该缓冲区,无论是有界的还是有界的(通过大小或TTL限制工厂)或无界-它没有类似于clear()
的方法,因此释放内存的唯一方法是当ReplaySubject
被GCed.@m.ostroverkhov agree!