说一说HashMap为什么在多线程操作时会导致死循环

  1. HashMap采用链表来解决Hash冲突,而链表容易形成闭合的链路,在循环的时候只要有线程对这个HashMap进行了get操作就会产生死循环。
  2. HashMap是非线程安全的,在多线程并发的情况下,put操作时可能会有两个线程同时触发rehash操作,从而导致闭合的回路。
  3. 在单线程的情况下,一个线程对HashMap的数据结构进行操作产生不了闭合的回路。
上一篇:Java中的HashMap


下一篇:5种方法去除字符串中重复的内容