- HashMap采用链表来解决Hash冲突,而链表容易形成闭合的链路,在循环的时候只要有线程对这个HashMap进行了get操作就会产生死循环。
- HashMap是非线程安全的,在多线程并发的情况下,put操作时可能会有两个线程同时触发rehash操作,从而导致闭合的回路。
- 在单线程的情况下,一个线程对HashMap的数据结构进行操作产生不了闭合的回路。
说一说HashMap为什么在多线程操作时会导致死循环
最新推荐文章于 2024-05-21 13:03:08 发布
- HashMap采用链表来解决Hash冲突,而链表容易形成闭合的链路,在循环的时候只要有线程对这个HashMap进行了get操作就会产生死循环。
- HashMap是非线程安全的,在多线程并发的情况下,put操作时可能会有两个线程同时触发rehash操作,从而导致闭合的回路。
- 在单线程的情况下,一个线程对HashMap的数据结构进行操作产生不了闭合的回路。