【问题标题】:Synchronized Maps like Hashtable, ConcurrentHashMap etc will lock only Map Objects or even the Objects stored as Values in MapHashtable、ConcurrentHashMap 等同步 Map 将仅锁定 Map 对象,甚至锁定存储为 Map 中的值的对象
【发布时间】:2017-06-20 16:43:22
【问题描述】:

考虑下面的地图

Map<String, Employee> m = new Hashtable<String, Employee>();

虽然 Map 是同步的,一次只能被一个 Thread 访问,那么 Object 作为 value 存储在 Map 中呢? 一旦每个线程获取了employee Object,每个线程都可以对其进行更新,并且此更新不是线程安全的。

【问题讨论】:

    标签: java object dictionary locking


    【解决方案1】:

    同步数据结构不会神奇地将它们包含的实例呈现为线程安全的。但是,它们可以帮助安全发布。您必须自己使Employee 线程安全。

    还要注意ConcurrentHashMap 不会在整个地图上使用锁,并且在许多情况下可以被多个线程同时安全地访问。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-02
      • 2013-04-22
      • 1970-01-01
      相关资源
      最近更新 更多