HashMap线程不安全原因

线程不安全原因:

JDK1.8中,由于多线程堆Hashmap的put操作导致线程不安全:假设两个线程A和B都对HashMap进行put操作,并且哈希函数计算出的下标相同,当线程执行完哈希冲突判断后打算插入数据时由于时间片耗尽挂起,而线程B得到时间片后进行成功插入。当线程A获得时间片后进行插入,因为已经判断过哈希冲突所有不进行判断,而是直接进行插入导致线程B数据被覆盖,从而线程不安全。

全部评论
感谢大佬分享
3 回复 分享
发布于 2023-03-08 15:51 四川
ResIze 时候也会发生
2 回复 分享
发布于 2023-03-18 13:52 浙江

相关推荐

1. 实习介绍2. 说我做了很多项目,叫我推荐几个说,开始拷打项目,先讲拼团3. 拼团项目业务流程介绍、营销规则树、高并发、自己做的吗?4. 责任链模式一般用来解决什么问题5. 项目tps和qps多少?有点忘记了6. qps的瓶颈?7. 最终数据一致性8. 读多写少的优化策略:缓存策略、数据库优化、写操作优化、缓存一致性9. 读多写少的索引设计10. mysql单库单表 数据超过2kw,索引是否有效:有效、但性能慢:内存压力大、写入变慢、全表扫描失效灾难11. 为什么DDD架构设计?12. SpringBoot处理HTTP请求的核心流程13. HTTP传输数据的安全问题和防护14. HTTPS握手过程(TLS握手):Hello协商算法 → 证书验证身份 → 交换密钥 → 开始加密通信15. 拼团项目反思改进空间:高并发其他方案、部署、业务拓展16. 共享屏幕看我的Agent笔记17. 解释为什么做Agent开发?18. 出算法了,问我源码读的多不,我说不多,然后还是出常规算法题(估计想出多线程)19. 手撕:整数矩阵最长递增路径:DFS+记忆化搜索20. 为什么代码过度使用static,写习惯了leetcode、方便直接用21. Java中static编译后的效果:内存分配、字节码层面、类加载初始化、访问方式22. 手撕:连续子数组和为K的倍数的所有子数组:一开始暴力双层循环了,应该要哈希表存索引或者前缀和23. 代码怎么达到最优的性能:我答成了阿里代码规范、AI工具优化(回答空泛、缺乏具体优化案例)24. 反问什么部门和业务
查看19道真题和解析
点赞 评论 收藏
分享
评论
12
59
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务