关于Java 1.6集合库中ConcurrentHashMap.Segment的设计:

  static final class Segment<K,V> extends ReentrantLock implements Serializable


恕我直言,给定的Segment不是-ReentrantLock,那么为什么要使用此extends?它应该是一个组成:

static final class Segment<K,V> implements Serializable { ReentrantLock lock = ... }

最佳答案

Javadoc说:


  段是哈希表的专用版本。该子类
  来自ReentrantLock的机会,只是为了简化一些锁定
  并避免单独建造。


考虑到这是一个非公开的内部类,我想他们在性能,易用性和良好设计之间进行了权衡。

关于java - ConcurrentHashMap.Segment是ReentrantLock吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8954155/

10-10 13:25