日期:2014-05-20  浏览次数:20739 次

请教静态变量的线程安全问题
程序用到一个static   HashMap储存一些数据,有两个线程会访问到它,这两个线程是不相干的,现在可能会出现这种情况:就是两个线程同时操作此变量,因此会发生异常java.util.ConcurrentModificationException
请问有什么办法解决?使同一时间只能有一个线程操作此变量,synchronized好像只能对同一个Object加锁

------解决方案--------------------
可以在static HashMap对象是加入Collections.synchronizedCollection()修饰,这时HashMap的对象就会成为线程安全的对象
------解决方案--------------------
可以把对变量的操作写在一个方法里。然后synchronized,