使用兩個線程對HashMap進行put操作,查看所有元素的key和value是否都相等。
final HashMap<String, String> firstHashMap = new HashMap<String, String>();
Thread t1=new Thread(){
public void run() {
for(int i=0;i<25;i++){
firstHashMap.put(String.valueOf(i), String.valueOf(i));
}
}
};
Thread t2=new Thread(){
public void run() {
for(int j=25;j<50;j++){
firstHashMap.put(String.valueOf(j), String.valueOf(j));
}
}
};
t1.start();
t2.start();
//主線程休眠1秒鐘,以便t1和t2兩個線程將firstHashMap填裝完畢。
Thread.currentThread().sleep(1000);
for(int l=0;l<50;l++){
//如果key和value不同,說明在兩個線程put的過程中出現異常。
if(!String.valueOf(l).equals(firstHashMap.get(String.valueOf(l)))){
System.err.println(String.valueOf(l)+":"+firstHashMap.get(String.valueOf(l)));
}
}