JAVA_多线程


为HashMap的不正确使用所导致。HashMap在多线程环境下使用不安全。

// 使用静态HashMap作为联系人数据缓存,key为手机号码.
private static Map lxrData = new HashMap();

多线程环境下不同步HashMap可能导致如下问题:
1、多线程put操作后可能导致get死循环。
2、多线程put操作的时候可能导致元素丢失。

解决方法:
1、在多线程环境下使用ConcurrentHashMap。
2、加入同步代码。

private static Map lxrData = new ConcurrentHashMap();

//可能引起并发问题的代码块加
synchronized(lxrData){
// 对lxrData进行put操作。
}

你可能感兴趣的:(语言,多线程)