【发布时间】:2017-05-02 15:22:44
【问题描述】:
TreeMap javadoc 有以下部分,我无法理解下面部分的最后一行。这是否意味着创建一个锁并将地图修改逻辑移动到一个同步块或其他东西中。只有结构修改需要同步,访问是线程安全的。
请注意,此实现不同步。
如果多个线程同时访问一个映射,并且至少有一个线程在结构上修改了映射,则它必须在外部同步。 (结构修改是添加或删除一个或多个映射的任何操作;仅更改与现有键关联的值不是结构修改。)This is typically accomplished by synchronizing on some object that naturally encapsulates the map. If no such object exists, the map should be "wrapped" using the Collections.synchronizedSortedMap method.
【问题讨论】:
-
是的,会的。
-
@MikeNakis 如果线程只是操作内部的值而不修改结构,那么它在非同步 Map 中是线程安全的吗?