13.7. 并行复杂度
默认情况下,分布式流会尽量并行化。最终用户可以控制这一点,实际上它们始终需要控制其中一个选项。这些流的并行性有两种。
当从 缓存集合创建流时,最终用户可以在调用流或 parallelStream 方法之间进行选择。https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html#stream--根据是否选择了并行流,将在本地为每个节点启用多个线程。请注意,一些操作(如重新哈希)和每个操作都会在本地使用顺序流。这在某些情况下可以增强,以允许本地并行流。
在使用本地并行时,用户应该小心,因为它需要大量条目或操作,这些条目或操作需要可以更快地计算。另请注意,如果用户使用具有 的并行流,并且每个操作不应阻断,这会在常见池中执行,这通常为计算操作保留。
当有多个节点时,远程请求可能需要控制同时处理远程请求是否同时处理。默认情况下,除 iterator 执行并发请求外的所有终端操作。迭代器,用于降低本地节点上的总体内存压力的方法,仅执行实际上性能稍好更高的顺序请求。
如果用户希望在 CacheStream
上调用 sequentialDistribution 或 parallelDistribution 方法来更改此默认值。