首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自修改集合的Java 8流

来自修改集合的Java 8流
EN

Stack Overflow用户
提问于 2015-05-18 10:27:28
回答 2查看 321关注 0票数 6

假设我有一个对象的List,这些对象只被一个线程修改(线程可以添加或移除对象),而另一个线程则间接地使用上面所述的流api对其进行流操作,最后(急切的操作)返回一个新的集合。这是一个线程安全的场景吗?毕竟,只有一个线程更新集合。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-18 10:35:51

这完全取决于您的源List实现。使用ArrayList,您可能会得到ConcurrentModificationException (或者可能会得到损坏的数据或其他一些异常:请参阅注释)。使用CopyOnWriteArrayList,您可以安全地使用流操作:它们将看到列表的状态,这是创建流时的实际状态。无论如何,您应该检查相应集合的spliterator()方法的文档,以确定在并发环境中使用它是否安全。

票数 8
EN

Stack Overflow用户

发布于 2015-05-18 10:33:46

您应该获得并发修改异常,因为您同时使用此集合进行读写。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30300775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档