如果我在Java 8中有一个并行流,并使用anyMatch终止,并且我的集合有一个与谓词匹配的元素,那么当一个线程处理此元素时,我想知道会发生什么。
我知道anyMatch是短路的,因此一旦处理匹配元素,我不希望进一步处理其他元素。我的困惑在于其他正在处理元素的线程会发生什么。我可以想到三种可能的情况: a)它们被中断吗? b)它们继续处理它们正在处理的元素,然后,一旦所有线程都不执行任何操作,我就得到了结果? c)我得到了结果,但是正在处理其他元素的线程继续处理这些元素(但完成后不再接受其他元素)?
我的谓词运行时间很长,因此一旦知道一个元素匹配就能快速终止非常有用。我有点担心,因为我在文档中找不到这些信息,它可能是实现相关的事情,这也是需要知道的。
谢谢
我知道anyMatch是短路的,因此一旦处理匹配元素,我不希望进一步处理其他元素。我的困惑在于其他正在处理元素的线程会发生什么。我可以想到三种可能的情况: a)它们被中断吗? b)它们继续处理它们正在处理的元素,然后,一旦所有线程都不执行任何操作,我就得到了结果? c)我得到了结果,但是正在处理其他元素的线程继续处理这些元素(但完成后不再接受其他元素)?
我的谓词运行时间很长,因此一旦知道一个元素匹配就能快速终止非常有用。我有点担心,因为我在文档中找不到这些信息,它可能是实现相关的事情,这也是需要知道的。
谢谢
b
。 - Holger