9.7. parallel Computation
默认情况下,分布式流会尝试尽可能并行化。最终用户可以控制这一点,实际上它们必须始终控制其中一个选项。这些流的并行化方式有两种。
从最终用户从缓存集合创建流时,可以选择调用流或 parallelStream 方法时,对每个节点的 本地进程。https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html#stream--根据确定的并行流是否在本地为每个节点启用多个线程。请注意,一些操作(如重新哈希)和每个操作都会在本地使用后续流。在一些时候可以改进,允许本地并行流。
在使用本地并行性时,用户应该小心,因为它需要大量条目或操作(计算代价非常昂贵)。同样也应该注意,如果用户使用 的并行流,每个
操作不应该阻止,因为这会在通用池中执行,通常为计算操作保留。
当有多个节点时,可能需要控制远程请求一次是否同时处理远程请求。默认情况下,除了它执行并发请求外的所有终端操作。迭代器(iterator)用来减少本地节点上的总体内存压力,仅执行后续请求,实际上性能稍好。
如果用户希望更改此默认值,但是用户可以通过在 CacheStream
上调用 sequentialDistribution 或 parallelDistribution 方法来实现。