EnumSetはスレッドセーフですか?私のテストはそれが安全であることを私に示しています

topCoder

これらは私のテストコードであり、出力はスレッドセーフであることを示しています。私が間違っている?

いわゆるスレッドセーフとは、run(){}メソッドがアトミックであることを意味すると思います

    import java.util.EnumMap;
    import java.util.HashMap;
    import java.util.Map;

    import com.enumTest.enumStateMac.Input;

public class TestEnumMapSafe implements Runnable {

    private String name = "";

    public TestEnumMapSafe(String name) {
        this.name = name;
    }

    static Map<Input, Input> enumHashMap = new EnumMap<Input, Input>(Input.class);

    public static void main(String[] args) throws InterruptedException {

        TestEnumMapSafe testEnumMapSafe1 = new TestEnumMapSafe("Thread_1");
        TestEnumMapSafe testEnumMapSafe2 = new TestEnumMapSafe("Thread_2");
        TestEnumMapSafe testEnumMapSafe3 = new TestEnumMapSafe("Thread_3");

            testEnumMapSafe1.run();
            testEnumMapSafe2.run();
            testEnumMapSafe3.run();

    }

    @Override
    public void run() {
        for (int i = 0; i < 100; i++) {
            enumHashMap.put(Input.ABORT_TRANSACTION, Input.ABORT_TRANSACTION);
            enumHashMap.put(Input.CHIPS, Input.CHIPS);
            enumHashMap.put(Input.QUARTER, Input.QUARTER);
            System.out.println("this.name: " + this.name + "  enumHashMap.keySet() : " + enumHashMap.keySet());
            enumHashMap.clear();
        }

    }
}
/*this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_1  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_2  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
this.name: Thread_3  enumHashMap.keySet() : [QUARTER, CHIPS, ABORT_TRANSACTION]
*/

誰かが助けることができますか?「スレッドセーフ」のテストに何か問題がありますか?

セルゲイ・アラエフ

EnumSet javadocから:

* Like most collection implementations, <tt>EnumSet</tt> is not * synchronized. If multiple threads access an enum set concurrently, and at * least one of the threads modifies the set, it should be synchronized * externally.

EnumSetは、同時に使用された場合に例外をスローしないという意味でのみ「安全」です。ただし、同期する必要があります。そうしないと、古いバージョンのデータが表示されるリスクがあります。

スレッドセーフのテストについて。他の人が言ったように、いくつかのテストを実行しても、プログラムが正しく同期されていることを証明することはできません。同期が取れていないために誤った動作が見られる場合がありますが、そうなる保証はありません。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

これは、私はそれがスレッドセーフにすることができますどのような方法ではスレッドセーフではありませんか?

分類Dev

私は私が望むことを正確に実行するこのビットのコードを持っていますが、それは遅いです。可能であればそれをスピードアップするのに役立つポインタを期待しています

分類Dev

なぜgitは他の人が私のgitステータスでコミットしていることを示しているのですか?

分類Dev

Inno Setupインストーラーによって起動された私のバッチは、そこにあるのに「システムは指定されたファイルを見つけることができません」と言います

分類Dev

Facebookは私がPhantomJSでそれをスクレイピングしていることを知っていますか?それは私に対抗するためにそのウェブサイトを変更できますか?

分類Dev

winapi:SetFocus()はエラーなしでNULLを返すことができますか?それは、フォーカスを実装するときに私が見ているものであるため、最近の古い新しい投稿を復元します

分類Dev

どのように私はコンマは残りの部分を残して、リストを区切っからフレーズが「いいえ」とそれぞれカンマで始まる削除することができますか?

分類Dev

どのように私は、メソッドがクラス図(UML)に同期していることを、示すことができますか?

分類Dev

Unityシステムの詳細は、私のドライバーが不明であることを示していますが、これを修正する方法はありますか?

分類Dev

Unityシステムの詳細は、私のドライバーが不明であることを示していますが、これを修正する方法はありますか?

分類Dev

現在、私のコードはデータをCSVファイルにエクスポートし、サーバーに保存しています。しかし、私はそれがファイルをダウンロードすることを望みます。どうすればよいですか?

分類Dev

私はcx_Freezeを使用してPythonコードをコンパイルしました、コードはそれの前にうまく機能しています、そして今それはこのエラーを示しています誰かが私を助けることができますか?

分類Dev

私は私のSQLファイルに問題がありますそれは私がインポートしようとしたときにこれらのエラーを示しています、私に解決策を教えてください

分類Dev

アクセスのシーケンスが安全であることがわかっている場合、ミューテックスなしでスレッド/ CPUを同期するにはどうすればよいですか?

分類Dev

私は情報を持っています、どうすればそれを私のデータベースに入れることができますか?

分類Dev

FileZillaからファイルをアップロードすると実際に何が起こっているのですか?私たちはそれをホストしていますか?、はいの場合、それは実際にどのようにウェブホスティングプロバイダーとリンクされていますか?

分類Dev

私は自分でパッケージをビルドしてインストールしますが、apt-getがそれをインストールしたことをどのように知ることができますか?

分類Dev

キーストアエントリが見つかりません。しかし、私はそれがそこにあることを知っています

分類Dev

私がテストしています同じクラスにあるメソッド呼び出しをモック、それは実際にコードのにおいですか?

分類Dev

やあみんなこのコードで私が間違っているのは何ですか。13195のすべての素因数を空のリストに追加しようとしていますが、空のリストが表示されます

分類Dev

私はいくつかのリストを持っています、私はそれらをマージしました、しかしどうすれば値を降順でそしてそれをSTDとして置くことができますか?

分類Dev

通常のint変数にアドレスを格納できないのはなぜですか?そして割り当てることによって、私はそれがどこを指すことも望まない。

分類Dev

ブートストラップフレームワークから電子メールを送信するこれでの私のエラーは、「メールは正常に送信されましたが、メールを受信しませんでした」というメッセージが表示されることです。

分類Dev

どのように私は、getメソッドを使用して送信されたパラメータにアクセスすることができますか?

分類Dev

アップグレードの問題-部分的なアップグレードをしたいのですが、これは私のxbmcインストールにとって安全ですか?

分類Dev

私のラップトップの統合された画面では、スムーズな動きがぎくしゃくしています。それをテストするためのソフトウェアはありますか?

分類Dev

なぜ日食はそれがデッドコードであることを示しているのですか?

分類Dev

C ++のデフォルト引数でテンプレートパラメータをスキップすることは本当に不可能ですか、なぜ構文はそうではないことを示唆していますか?

分類Dev

私のプロセッサは64ビットです-それは私がamd64イメージを必要とすることを意味しますか?

Related 関連記事

  1. 1

    これは、私はそれがスレッドセーフにすることができますどのような方法ではスレッドセーフではありませんか?

  2. 2

    私は私が望むことを正確に実行するこのビットのコードを持っていますが、それは遅いです。可能であればそれをスピードアップするのに役立つポインタを期待しています

  3. 3

    なぜgitは他の人が私のgitステータスでコミットしていることを示しているのですか?

  4. 4

    Inno Setupインストーラーによって起動された私のバッチは、そこにあるのに「システムは指定されたファイルを見つけることができません」と言います

  5. 5

    Facebookは私がPhantomJSでそれをスクレイピングしていることを知っていますか?それは私に対抗するためにそのウェブサイトを変更できますか?

  6. 6

    winapi:SetFocus()はエラーなしでNULLを返すことができますか?それは、フォーカスを実装するときに私が見ているものであるため、最近の古い新しい投稿を復元します

  7. 7

    どのように私はコンマは残りの部分を残して、リストを区切っからフレーズが「いいえ」とそれぞれカンマで始まる削除することができますか?

  8. 8

    どのように私は、メソッドがクラス図(UML)に同期していることを、示すことができますか?

  9. 9

    Unityシステムの詳細は、私のドライバーが不明であることを示していますが、これを修正する方法はありますか?

  10. 10

    Unityシステムの詳細は、私のドライバーが不明であることを示していますが、これを修正する方法はありますか?

  11. 11

    現在、私のコードはデータをCSVファイルにエクスポートし、サーバーに保存しています。しかし、私はそれがファイルをダウンロードすることを望みます。どうすればよいですか?

  12. 12

    私はcx_Freezeを使用してPythonコードをコンパイルしました、コードはそれの前にうまく機能しています、そして今それはこのエラーを示しています誰かが私を助けることができますか?

  13. 13

    私は私のSQLファイルに問題がありますそれは私がインポートしようとしたときにこれらのエラーを示しています、私に解決策を教えてください

  14. 14

    アクセスのシーケンスが安全であることがわかっている場合、ミューテックスなしでスレッド/ CPUを同期するにはどうすればよいですか?

  15. 15

    私は情報を持っています、どうすればそれを私のデータベースに入れることができますか?

  16. 16

    FileZillaからファイルをアップロードすると実際に何が起こっているのですか?私たちはそれをホストしていますか?、はいの場合、それは実際にどのようにウェブホスティングプロバイダーとリンクされていますか?

  17. 17

    私は自分でパッケージをビルドしてインストールしますが、apt-getがそれをインストールしたことをどのように知ることができますか?

  18. 18

    キーストアエントリが見つかりません。しかし、私はそれがそこにあることを知っています

  19. 19

    私がテストしています同じクラスにあるメソッド呼び出しをモック、それは実際にコードのにおいですか?

  20. 20

    やあみんなこのコードで私が間違っているのは何ですか。13195のすべての素因数を空のリストに追加しようとしていますが、空のリストが表示されます

  21. 21

    私はいくつかのリストを持っています、私はそれらをマージしました、しかしどうすれば値を降順でそしてそれをSTDとして置くことができますか?

  22. 22

    通常のint変数にアドレスを格納できないのはなぜですか?そして割り当てることによって、私はそれがどこを指すことも望まない。

  23. 23

    ブートストラップフレームワークから電子メールを送信するこれでの私のエラーは、「メールは正常に送信されましたが、メールを受信しませんでした」というメッセージが表示されることです。

  24. 24

    どのように私は、getメソッドを使用して送信されたパラメータにアクセスすることができますか?

  25. 25

    アップグレードの問題-部分的なアップグレードをしたいのですが、これは私のxbmcインストールにとって安全ですか?

  26. 26

    私のラップトップの統合された画面では、スムーズな動きがぎくしゃくしています。それをテストするためのソフトウェアはありますか?

  27. 27

    なぜ日食はそれがデッドコードであることを示しているのですか?

  28. 28

    C ++のデフォルト引数でテンプレートパラメータをスキップすることは本当に不可能ですか、なぜ構文はそうではないことを示唆していますか?

  29. 29

    私のプロセッサは64ビットです-それは私がamd64イメージを必要とすることを意味しますか?

ホットタグ

アーカイブ