如果我有多个并行运行的线程并且每个线程使用相同的HashMap
实例,那么它是否正常/安全? HashMap
对象仅用于读取数据。在任何线程中都没有写入HashMap
的数据。
要清楚,HashMap
实例是基类的成员,我将在其子类中调用后台线程。然后,这些线程将引用HashMap
对象。
答案 0 :(得分:2)
如果线程只是从HashMap
读取,则没有问题。当至少有一个线程正在修改HashMap
而其他线程可能正在同时读取它时,您将遇到麻烦。
Java确实有其他Map
实现可以安全地并发使用,例如java.util.concurrent.ConcurrentHashMap
。