wal*_*ros 9 java algorithm parallel-processing multithreading
在阅读Java 8 Spliterator的文档时,我遇到了"串行线程限制"的概念.Preciselly文件说:
尽管它们在并行算法中具有明显的实用性,但预计分裂器不是线程安全的.相反,使用分裂器的并行算法的实现应确保分裂器一次仅由一个线程使用.这通常很容易通过串行线程限制来实现,这通常是通过递归分解工作的典型并行算法的自然结果
Q1:通过上面的第一句话,我假设在编写SpliteratorI的实现时应该返回Spliterator的新实例,它将对遍历数据的孤立子集进行操作(这样其他线程就无法访问数据子集).是对的吗?
Q2:第二句话是什么意思.什么是"串行线程限制",为什么它是" 典型并行算法的自然结果 "?
Q1:这是正确的,一次只能有一个线程拥有 Splititerator。例如,当在 Splititerator 上使用时,trySplit方法将返回(如果集合可以拆分)一个新的 Splititerator,您应该只给一个线程(另一个线程应该处理原始的 Splititerator,它现在只包含未被删除的元素)尝试拆分调用)
Q2:串行线程限制意味着您可以安全地将 splititerator 从一个线程发布到另一个线程,只要 splititerator 被限制在单个线程中
| 归档时间: |
|
| 查看次数: |
445 次 |
| 最近记录: |