gpt4 book ai didi

java - java写并行算法时 "serial thread-confinement"是什么意思?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:24:05 27 4
gpt4 key购买 nike

阅读 Java 8 Spliterator 的文档时我遇到了“串行线程限制”的概念。准确地说,文档说:

Despite their obvious utility in parallel algorithms, spliterators are not expected to be thread-safe; instead, implementations of parallel algorithms using spliterators should ensure that the spliterator is only used by one thread at a time. This is generally easy to attain via serial thread-confinement, which often is a natural consequence of typical parallel algorithms that work by recursive decomposition

问题 1:根据上面的第一句话,我假设在编写 Spliterator 的实现时,我应该返回 Spliterator 的新实例,它将对遍历数据的孤立子集进行操作(以便数据子集可以不能被其他线程访问)。是吗?

Q2:第二句是什么意思。什么是“串行线程限制”?为什么它是“典型并行算法的自然结果”?

最佳答案

Q1:是的,一次只能有一个线程拥有一个 Splititerator。例如,当在 Splititerator 上使用时,trySplit 方法将返回(如果集合可以拆分)一个新的 Splititerator,您应该只给一个线程(另一个线程应该处理现在只包含trySplit 调用未删除的元素)

问题 2:串行线程限制 意味着您可以安全地将 splititerator 从一个线程发布到另一个线程,只要 splititerator 被限制在单个线程中

关于java - java写并行算法时 "serial thread-confinement"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43733005/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com