【发布时间】:2014-03-20 09:35:10
【问题描述】:
这是Do I need a concurrent collection for adding elements to a list by many threads?的后续帖子
那里的每个人都专注于扩展列表。我知道这可能是个问题,但是.. 添加元素呢?那是线程安全的吗?
示例代码
static final Collection<String> FILES = new ArrayList<String>(1000000);
并且我在许多线程中执行(我添加的元素少于 1000000 个)
FILES.add(string)
那个线程安全吗?这样做可能会出现什么问题?
【问题讨论】:
-
没有。 ArrayList 不是线程安全的。使用 Collections.synchronizedList(new ArrayList
()); .参考stackoverflow.com/questions/11360401/java-synchronized-list -
我在帖子中解释过。你还有什么不明白的?在执行添加操作的那一刻,您可以简单地得到不同的结果。再次阅读您所引用的我的帖子,并尝试更准确地问我您在该解释中不理解的内容以及缺少的内容。
-
我认为我对您的第一个问题做出了正确的回答。因此,您只需删除该问题即可。我在第一个中做了一些更新,以便更准确地解释它。
标签: java multithreading collections thread-safety