Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rx java rxjava中UnicastSubject和ReplaySubject的区别_Rx Java_Rx Android_Reactive - Fatal编程技术网

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!