变量值由不同的线程同时更改

时间:2011-12-30 08:15:32

标签: java multithreading variables simultaneous

我有很多并发运行的http请求服务线程。他们将为每个请求创建一个Object(?extends Object)并将该对象保存在列表中。 建议我一些很好的数据结构来实现这个列表。 我不能使用ArrayList,因为它不是线程安全的。 我不喜欢使用Vector - 因为它的同步,当其中一个http线程保存对象时,它会让其他线程等待。 还尝试了LinkedList,但由于并发更新而导致数据丢失。

1 个答案:

答案 0 :(得分:1)

您的变量需要是原子的,以便多个线程可以安全地更新它(请参阅java.util.concurrent.atomic)。您还可以使用AtomicInteger跟踪变量更新的次数。

但是你确定要在没有明确控制对变量的更新的情况下这样做吗?