您的位置:首页 > 其它

测试 hashmap  hashtable   Collections.synchronizedMap 多线程并发安全

2017-11-08 00:00 477 查看
测试 hashmap hashtable Collections.synchronizedMap 多线程并发安全

//  private   static Hashtable<String,Integer > map = new Hashtable<String, Integer>();
//  private   static Map<String,Integer > map = new HashMap<String, Integer>();
private   static Map<String,Integer > map = Collections.synchronizedMap(new HashMap());

public static void main(String[] args) throws InterruptedException {
map.put("key", 0);

ThreadA threadA=new ThreadA();
ThreadB threadB=new ThreadB();
threadA.start();
threadB.start();

//这里等待线程结束后,重置共享变量,以使验证结果的工作变得简单些.
threadA.join();

System.out.println(map.get("key"));
for (int i = 0; i < 2000; i++) {
if(!String.valueOf(i).equals(String.valueOf(map.get(String.valueOf(i))))){
System.err.println(String.valueOf(i)+":"+map.get(String.valueOf(i)));
}
}
}

static class ThreadA extends Thread {
int kk = 0;

public void run() {
for (int i = 0; i < 1000; i++) {
map.put(""+i,i);
}

}
}

static class ThreadB extends Thread {
public void run() {
for (int i = 1000; i < 2000; i++) {
map.put(""+i,i);
}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐