TreeMap/ConcurrentSkipListMap 동기화 테스트 코드
final Map<String, Integer> m = new ConcurrentSkipListMap<String, Integer>() {
{
put("a",1);
put("b",2);
put("c",3);
put("d",4);
}
};
Thread t1 = new Thread() {
int cnt=0;
public void run() {
while(true) {
cnt++;
m.put("e"+cnt, 1);
if(cnt%1000 == 0) {
// System.out.println("t1 "+cnt);
}
}
}
};
Thread t2 = new Thread() {
int cnt=0;
public void run() {
while(true) {
Iterator iter = m.keySet().iterator();
while(iter.hasNext()) {
System.out.println("iter : " + iter.next());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
};
t1.start();
t2.start();
Thread.sleep(10000);
System.out.println("end");