Java容器还有一种能防止多个进程同时修改容器内容的机制。假设你正在遍历某个容器,这时另一个进程插了进来,对容器做了插入,删除或是修改里边的对象,于是这个问题就来了。或许你已经把对象传出去了,但是它抢在你前头把它给删了,或许你调用了size,但是容器已经缩水了——会引发灾难的可能性太多了。
Java容器类库集成了一个叫fail fast(及早报告错误)机制,它能找出所有不应由进程负责的容器的变化。如果它发现有人在修改容器,它会立即返回一个错误。这就是它fail fast的地方,它不会等出了问题之后再去用很复杂的算法去找问题了。