如何解决什么是/如何为并行可流动选择“预取”?
我正在阅读并行流文档 here 并提到:
默认情况下,并行级别设置为可用 CPU 的数量 (Runtime.getRuntime().availableProcessors()),顺序源的预取量设置为 Flowable.bufferSize() (128)。两者都可以通过parallel()的重载来指定。
我仍然不明白这个预取的目的,以及为什么它这么大。我想这意味着它下面的运营商将持有超过 1 个排放(默认为 128)。但是,我无法想象这是一个好主意,因为下游操作符实际上是单线程的,直到我们从上游发出超过 128 个排放? (例如,如果我们有 130 个,第一个 128 个将由一个线程预取,最后 2 个将提供给第二个。所有其他线程什么都不做。)
我猜更快的flowables中较小的对象应该有更大的预取,因为在rx链之间传递数据的成本会相对更高,所以我们希望预取更高。不过,我不确定要在这里选择哪些数字。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。