【发布时间】:2014-08-13 18:44:07
【问题描述】:
我使用以下代码来初始化 EnumSet 的同步实例:
private final Set<MyClass> instance = Collections.synchronizedSet(EnumSet.noneOf(MyClass.class));
我有两个问题:
- 在这种情况下,我是否保留了 EnumSet 的所有优点,例如紧凑性和效率?
- 是否有更多...比方说...语义丰富的方法来获取 EnumSet 的空且同步实例?
【问题讨论】:
-
对我来说看起来不错。 Collections.synchronizedSet 只是一个包装器,不会更改或替换 EnumSet。
-
我刚刚检查了源代码 - 实际上它只是一个添加基于互斥锁的同步的包装器。而且似乎没有任何库提供任何(更具可读性)的单行代码。
标签: java multithreading enumset