社区
Java SE
帖子详情
什么叫快速失败?
gqqnb
2010-12-04 04:35:39
以Java synchronizedCollection集合来说,它的迭代器是快速失败的。
那它失败就失败吧,还快速,它快速在哪里?有多快?怎么个快法?一般的慢速的失败是怎么失败的?
...全文
1553
14
打赏
收藏
什么叫快速失败?
以Java synchronizedCollection集合来说,它的迭代器是快速失败的。 那它失败就失败吧,还快速,它快速在哪里?有多快?怎么个快法?一般的慢速的失败是怎么失败的?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
loshamo
2011-08-20
打赏
举报
回复
原来是这样啊 。
冰思雨
2010-12-07
打赏
举报
回复
顶果子的解释,非常到位.
火龙果被占用了
2010-12-05
打赏
举报
回复
好比对于方法的参数,一开始就检查其是否为 null,而不是到后面等用到的时候再检查(或者不检查),类似于这样的行为称为快速失败。
对于非并发集合来说,在其进行迭代时,若有其他线程修改了增减了集合中的内容,这个迭代会马上感知到,并且立即抛出 ConcurrentModificationException 异常,而不是迭代完成后才告诉你出错了。
龙四
2010-12-05
打赏
举报
回复
就是一旦异步修改了vector,迭代马上就报错,而不是继续迭代,到最后才报错
Dongo2
2010-12-05
打赏
举报
回复
快速失败是指某个线程在迭代vector的时候,不允许其他线程修改该vector的内容,这样迭代器迭代出来的结果就会不准确,如用iterator迭代collection的时候,iterator就是另外起的一个线程,它去迭代collection,如果此时用collection.remove(obj)这个方法修改了collection里面的内容的时候,就会出现ConcurrentModificationException异常,这时候该迭代器就快速失败。
---------正解
润物wu声
2010-12-04
打赏
举报
回复
快速失败是指某个线程在迭代vector的时候,不允许其他线程修改该vector的内容,这样迭代器迭代出来的结果就会不准确,如用iterator迭代collection的时候,iterator就是另外起的一个线程,它去迭代collection,如果此时用collection.remove(obj)这个方法修改了collection里面的内容的时候,就会出现ConcurrentModificationException异常,这时候该迭代器就快速失败。
冰思雨
2010-12-04
打赏
举报
回复
快速失败只是一种直译,它不是音译,但,近似与意译。
就如同手机一样,并不是只有拿在手里才能用,放在兜里,它照样能用。
手机的意译应该叫做移动电话,英文名称Mobile,直译就叫手机。
近似的,我们可以理解为拿在手里的通信机器,但这种定义并不准确,步话机也可以拿在手里通话。
快速失败,也是一个道理。
当然,近似的,我们也可以理解为,
当你的当前线程使用某个集合对象的迭代器访问集合内容的时候,
其他线程在你还没访问完事就已经更改了集合里面的内容。
本来你访问集合内容很迅速就能完事(可能几毫秒的事情),居然还有人(线程)比你(当前线程)还快。
这就叫快速失败。
就好像有一盘饺子,你要数数有几个,在你还没数完,其他人有放入(或拿走)了几个饺子。
你就只能重新再数了。本来你数数就很快,但是,就有人比你手更快。
tom_66
2010-12-04
打赏
举报
回复
快速失败
是指某个线程在迭代vector的时候,不允许其他线程修改该vector的内容,这样迭代器迭代出来的结果就会不准确,如用iterator迭代collection的时候,iterator就是另外起的一个线程,它去迭代collection,如果此时用collection.remove(obj)这个方法修改了collection里面的内容的时候,就会出现ConcurrentModificationException异常,这时候该迭代器就快速失败。
HashMap之
快速
失败
避免读写同时进行
HashMap是线程不安全的。那么面对读写同时进行会怎么样呢,JDK面对明显的脏数据如何避免,走进科学为你揭晓传说中的
快速
失败
机制是什么样子
python中简述什么是异常_python中的异常是什么?应该怎么处理异常?
今天这篇文章我们来了解一下python之中异常处理,首先我们需要理解python的异常,只有知道了python所有的异常以及他们发生的原因,我们才能应对python错误和异常处理的方法,从而
快速
处理异常。什么是异常?异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。一般情况下,在Python无法正常处理程序时就会发生一个异常。异常是Python对象,表示一个错误。当Python...
通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core?
什么是.NET?什么是.NET Framework?本文将从上往下,循序渐进的介绍一系列相关.NET的概念,先从类型系统开始讲起,我将通过跨语言操作这个例子来逐渐引入一系列.NET的相关概念,这主要包括:CLS、CTS(CLI)、FCL、Windows下CLR的相关核心组成、Windows下托管程序运行概念、什么是.NET Framework,.NET Core,.NET Standard及一些V...
接口测试
什么是接口? 人类与电脑等信息机器或人类与程序之间的接口称为用户界面。 电脑等信息机器硬件组件间的接口叫硬件接口。 电脑等信息机器软件组件间的接口叫软件接口。 常用的接口? USB接口、HDMI高清接口、Type-c、耳机接口、电源线、插座 接口测试的定义? 接口测试是测试系统组件间接口的一种测试。主要用于检测系统与系统之间以及内部各个子系统之间的交互点 接口测试的目的? 测接口测试的目的:以保证...
你真的知道什么是项目吗?项目的基本概念
项目的基本概念 什么是项目 项目源于人类有组织的活动。 随着人类社会的发展, 人类有组织的活动逐步分化为两大类型: 一类是连续不断、 周而复始的活动, 人们称之为 “作业”或“运作”,如企业流水线生产大批产品的活动;另一类是临时性、一次性活动,人们称之为 “ 项目 ” ( Projects)。 从古代的都江堰水利工程、现代的三峡工程,到著名的“阿波罗计划”,神州飞船工程等,都是项目! 什么是项目?项目是为创造独特的产品、 服务或成果而做的临时性工 作。从广义上定义, 项目是为实现特定目标的-次性
Java SE
62,616
社区成员
307,307
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章