我可以在并行运行的多个线程中使用相同的实例吗?

时间:2016-04-29 14:32:12

标签: java multithreading

如果我有多个并行运行的线程并且每个线程使用相同的HashMap实例,那么它是否正常/安全? HashMap对象仅用于读取数据。在任何线程中都没有写入HashMap的数据。

要清楚,HashMap实例是基类的成员,我将在其子类中调用后台线程。然后,这些线程将引用HashMap对象。

1 个答案:

答案 0 :(得分:2)

如果线程只是从HashMap读取,则没有问题。当至少有一个线程正在修改HashMap而其他线程可能正在同时读取它时,您将遇到麻烦。

Java确实有其他Map实现可以安全地并发使用,例如java.util.concurrent.ConcurrentHashMap