【发布时间】:2015-01-03 08:15:52
【问题描述】:
我有一个函数可以插入作为参数传递的arrayList字符串。这个函数可以被不同的线程访问,
public void adding(String newStringForEachInvocation){
arrayList.add(newStringForEachInvocation);
}
我想同时保留add 方法,我的疑问是,如果两个threads 有两个不同的字符串,它们是否有可能竞争同一个存储桶?
另一种选择是使用 blockingQueue ,但无论如何它可能代表线程竞争同一个存储桶的相互排斥?
【问题讨论】:
-
blockingQueue 被设计成可以处理竞争。如果要模拟比赛场景,则必须手动编写互斥锁和信号量。
标签: java multithreading arraylist