论坛首页 Java企业应用论坛

sun的程序员也是程序员啊!(续)

浏览 16403 次
该帖已经被评为精华帖
作者 正文
   发表时间:2010-05-11  
额,你真用心啊,测试部错哦!
0 请登录后投票
   发表时间:2010-05-11  
嗯,之前我也压测压出了问题,现在的U真是很快。
题外话,HashMap不加同步锁,但是也是有好处的。像ConcurrentHashMap就不能放
null进去,很不方便啊。。。所以用Collections.synchroniz..(HashMap)就很好用了,不过序列化的时候麻烦点。
0 请登录后投票
   发表时间:2010-07-09  
楼主真是强大 啊
0 请登录后投票
   发表时间:2010-12-26  
多学习,不要轻易怀疑国外厂家的代码。

当你看到ConcurrentModificationException异常的时候,就知道这个不是普通的HashMap而是ConcurrentHashMap。

ConcurrentHashMap的迭代器(Iterators,Enumerations)是单线程的,并且不会抛出ConcurrentModificationException的。

基于楼主在帖子中控诉Sun没有同步保护,可知楼主对多线程经验很少,我本想帮你找到出错原因,但发现场景中有Ws还有一个什么metro,所以,我只能提示楼主深入测试一下ConcurrentHashMap在什么情况下会抛出ConcurrentModificationException,然后从调用模块的架构上去找原因。

ConcurrentHashMap是个很好用的容器,唯一的不足是迭代不能反映最新的变化。
0 请登录后投票
   发表时间:2010-12-26  
repou 写道
多学习,不要轻易怀疑国外厂家的代码。

当你看到ConcurrentModificationException异常的时候,就知道这个不是普通的HashMap而是ConcurrentHashMap。

ConcurrentHashMap的迭代器(Iterators,Enumerations)是单线程的,并且不会抛出ConcurrentModificationException的。

基于楼主在帖子中控诉Sun没有同步保护,可知楼主对多线程经验很少,我本想帮你找到出错原因,但发现场景中有Ws还有一个什么metro,所以,我只能提示楼主深入测试一下ConcurrentHashMap在什么情况下会抛出ConcurrentModificationException,然后从调用模块的架构上去找原因。

ConcurrentHashMap是个很好用的容器,唯一的不足是迭代不能反映最新的变化。


拜托在指责他人前,先认真看看帖子,先看看别人在说什么。

否则会闹笑话的

我贴出来的exception 和代码你都不看清楚,服了你了。


0 请登录后投票
   发表时间:2010-12-26  
repou 写道


当你看到ConcurrentModificationException异常的时候,就知道这个不是普通的HashMap而是ConcurrentHashMap。



这个是发生问题的地方,你可以去看看jdk的源码,HashMap.java:, line 793

Caused by: java.util.ConcurrentModificationException
        at java.util.HashMap$HashI**terator.nextEntry(HashMap.java: 793 )
        at java.util.HashMap$EntryIterator.next(HashMap.java: 834 )
        at java.util.HashMap$EntryIterator.next(HashMap.java: 832 )

metro的代码我也贴出来过,你也可以下载,或者用我贴出来的fisheye工具,链接在帖子里面。

if (reqHeaders  ==   null ){
                reqHeaders  =   new  HashMap < String, List < String >> ();
            }

这个帖子中sun用的是HashMap,出问题的也是HashMap。



0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics