【问题标题】:Iterator synchronization in parallel stream并行流中的迭代器同步
【发布时间】:2014-09-25 09:20:00
【问题描述】:

如果我像这样从自己的 Iterable 创建并行流:

StreamSupport.stream(new FilesToProcessIterable(customerId).spliterator(), true)

我必须关心迭代器实现中的状态同步,否则它将由 Stream 或 Spliterator 本身进行处理?

【问题讨论】:

    标签: java parallel-processing java-stream


    【解决方案1】:

    javadoc所写

    强烈建议拆分器报告 IMMUTABLE 或 CONCURRENT 的特征

    所以要么你采用一个迭代器,它是线程安全的,要么你实现一个,但该方法不会使它成为线程安全的。您可以使用供应商版本作为替代。

    【讨论】:

    • 我意识到我选择了错误的方式:) 我遇到了经典的生产者-消费者问题,但没有意识到这一点并开始发明一些复杂的东西。但是您的回答似乎无论如何都是正确的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-15
    • 2020-09-13
    • 2018-06-20
    • 1970-01-01
    相关资源
    最近更新 更多