多线程并发中的ConcurrentHashMap绝对线程安全问题
多线程通讯中,发线,ConcurrentHashMap不是绝对线程安全的,就是用CLASS销都不行。
public class ManageData {
public static ConcurrentHashMap<SocketAddress,Message> hm =new ConcurrentHashMap<SocketAddress, Message>();
private static byte[] lock= new byte[0];
public void addMessage(SocketAddress client, Message message){
synchronized(lock){
hm.put(client, message);
}
}
public Message getMessageObject(SocketAddress address){
Message ret =null;
ret=hm.get(address);
if(null==ret){
ret=new Message();
synchronized(lock){
hm.put(address, ret);
}
}
return ret;
}