HashMap为什么是线程不安全的?

admin_user 2026-05-09
22 次浏览 0 个回答
最近在学Java集合,看到HashMap底层实现挺有意思的,但一直有个疑问:都说HashMap是线程不安全的,那它到底不安全在哪儿呢?我大概知道多线程下put操作可能会造成数据覆盖,但具体是怎么发生的?比如两个线程同时put,是不是可能一个线程的key被另一个线程的value给覆盖了?还有扩容的时候会不会出现死循环或者丢数据?我自己试着写了个多线程demo,确实偶尔会出现null值或者size不对的情况,但代码层面我没法完全说清楚原因。希望能有大佬从源码角度,结合具体场景(比如put、get、resize),讲一讲HashMap线程不安全的底层机制,最好能举个典型的并发异常例子。谢谢!
PHP