Fast-fail机制

  Fast-fail机制:在使用迭代器的过程中如果HashMap被修改,那么ConcurrentModificationException将被抛出;
  实现原理:迭代器创建时绑定某个版本,每次迭代都会比较当前版本与绑定的版本,如果不一致则抛出ConcurrentModificationException。HashMap被修改时版本号会被更新,如下图所示:
Java基础之HashMap

线程不安全

  本质:数组是共享的,当多个线程同时执行扩容操作时,可能造成死循环,详细说明查看:http://www.jasongj.com/java/concurrenthashmap/

JDK1.8改进

  1. 不需要重新计算哈希;
  2. 扩容时链表顺序保持不变;

参考:http://www.jasongj.com/java/concurrenthashmap/

相关文章: