我期待到Spliterator的文件,并根据它的Spliterator是不是线程安全的:Spliterator:线程安全与否?
尽管在并行算法的明显的效用,spliterators预计不会是线程安全的;相反,使用分割器的并行算法的实现应该确保分割器一次只能由一个线程使用。这通常很容易通过串行线程约束来实现,这通常是通过递归分解工作的典型并行算法的自然结果。
但是,其进一步的文件,其中规定一个矛盾的声明,上述声明:
可以通过以下方式来管理源(按递减可取的大致顺序)的结构干扰:
源管理并发修改。 例如,java.util.concurrent.ConcurrentHashMap的键集是一个并发源。从源头创建的Spliterator报告了CONCURRENT的特征。
那么这是否意味着从线程安全集合生成的Spliterator将是线程安全的?这样对吗?
我在这两个语句中看不出矛盾:'Spliterator'不是线程安全的,但它可以是线程安全的。如果它是线程安全的,它可能会报告它具有'CONCURRENT'特性。 –