什么叫快速失败? 以Java synchronizedCollection集合来说,它的迭代器是快速失败的。那它失败就失败吧,还快速,它快速在哪里?有多快?怎么个快法?一般的慢速的失败是怎么失败的? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 快速失败 是指某个线程在迭代vector的时候,不允许其他线程修改该vector的内容,这样迭代器迭代出来的结果就会不准确,如用iterator迭代collection的时候,iterator就是另外起的一个线程,它去迭代collection,如果此时用collection.remove(obj)这个方法修改了collection里面的内容的时候,就会出现ConcurrentModificationException异常,这时候该迭代器就快速失败。 快速失败是指某个线程在迭代vector的时候,不允许其他线程修改该vector的内容,这样迭代器迭代出来的结果就会不准确,如用iterator迭代collection的时候,iterator就是另外起的一个线程,它去迭代collection,如果此时用collection.remove(obj)这个方法修改了collection里面的内容的时候,就会出现ConcurrentModificationException异常,这时候该迭代器就快速失败。 快速失败是指某个线程在迭代vector的时候,不允许其他线程修改该vector的内容,这样迭代器迭代出来的结果就会不准确,如用iterator迭代collection的时候,iterator就是另外起的一个线程,它去迭代collection,如果此时用collection.remove(obj)这个方法修改了collection里面的内容的时候,就会出现ConcurrentModificationException异常,这时候该迭代器就快速失败。 ---------正解 就是一旦异步修改了vector,迭代马上就报错,而不是继续迭代,到最后才报错 好比对于方法的参数,一开始就检查其是否为 null,而不是到后面等用到的时候再检查(或者不检查),类似于这样的行为称为快速失败。对于非并发集合来说,在其进行迭代时,若有其他线程修改了增减了集合中的内容,这个迭代会马上感知到,并且立即抛出 ConcurrentModificationException 异常,而不是迭代完成后才告诉你出错了。 java -verbosegc 这个命令有什么作用? 有人会swt绘图的吗,知道怎样玩转"渐变"吗 throw到底是什么东东 求助 程序错误问题 急急 JDK1.3中去空格的函数是? 如何将Runtime.getRuntime().exec()运行的程序的界面隐藏 谁能解释一下 unChecked Exception 是如何理解? EJB的英文全称? 关于读入大型文件(内有繁体中文),内存java.lang.OutOfMemoryError的问题 文件流、缓冲流和数据流使用完后,不调用实例的close方法,系统级自动回收吗? 读取jar包中的XML出问题 JDOM解析xml路径问题
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货