什么是/如何为并行可流动选择“预取”?

问题描述

我正在阅读并行流文档 here 并提到:

认情况下,并行级别设置为可用 cpu数量 (Runtime.getRuntime().availableProcessors()),顺序源的预取量设置为 Flowable.bufferSize() (128)。两者都可以通过parallel()的重载来指定。

我仍然不明白这个预取的目的,以及为什么它这么大。我想这意味着它下面的运营商将持有超过 1 个排放(认为 128)。但是,我无法想象这是一个好主意,因为下游操作符实际上是单线程的,直到我们从上游发出超过 128 个排放? (例如,如果我们有 130 个,第一个 128 个将由一个线程预取,最后 2 个将提供给第二个。所有其他线程什么都不做。)

我猜更快的flowables中较小的对象应该有更大的预取,因为在rx链之间传递数据的成本会相对更高,所以我们希望预取更高。不过,我不确定要在这里选择哪些数字。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)