これらは私のテストコードであり、出力はスレッドセーフであることを示しています。私が間違っている?
いわゆるスレッドセーフとは、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]
コメントを追加