日期:2014-05-19  浏览次数:20718 次

Collections.synchronizedMap(new HashMap())求解!
Collections.synchronizedMap(new HashMap())这个方法是什么意思,起到了什么求解作用.返回的map里面存的是什么东西?

------解决方案--------------------
因为systemUsers在application里面,是个全局变量

如果有人正好在迭代MAP,同时有人往MAP里面增或删东西的话会报ConcurrentModify异常的.

所以,要同步。不过我觉得这里用ConcurrentHashMap

------解决方案--------------------
Collections.synchronizedMap(new HashMap())
让你创建的new HashMap()支持多线程数据的同步。保证多线程访问数据的一致性
------解决方案--------------------
Collections.synchronizedMap是个比较老的API了,实际用起来还要手工做一些事。

建议楼主用Java5的ConcurrentHashMap或Java6的ConcurrentSkipListMap