我使用以下代码来初始化 EnumSet 的同步实例:

private final Set<MyClass> instance = Collections.synchronizedSet(EnumSet.noneOf(MyClass.class));

我有两个问题:
  • 在这种情况下,我是否保留了 EnumSet 的所有优点,例如紧凑性和效率?
  • 是否有更多...让我们说...语义丰富的方式来获取 EnumSet 的空和同步实例?
  • 最佳答案

    来自 javadoc :

    所以我认为这是你能做的最好的事情。
    我也会像你一样保留 Set final 。奇怪的是他们没有在 javadoc 中提到它。
    编辑 :要回答第一个问题,简短的回答是的,长的回答,是的,但是您必须为此付出同步的代价。

    关于java - Java 中的线程安全 Enumset,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24370792/

    10-11 15:00