腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
返回腾讯云官网
TopCoder
关注程序员技术成长,用简洁的文字,分享复杂的技术。
专栏作者
举报
101
文章
115297
阅读量
25
订阅数
订阅专栏
申请加入专栏
全部文章
java
编程算法
linux
sql
dubbo
node.js
数据库
云数据库 Redis
unix
分布式
javascript
文件存储
容器
自动驾驶
缓存
网络安全
tcp/ip
云数据库 SQL Server
spring
jdk
android
http
存储
jvm
rpc
socket编程
数据分析
bootstrap
react
json
github
容器镜像服务
serverless
hashmap
spring cloud
负载均衡
html
api
apache
mapreduce
消息队列 CMQ 版
开源
https
微服务
kafka
es
对象存储
其他
c 语言
c++
python
c#
bash
access
git
全文检索
负载均衡缓存
NAT 网关
vr 视频解决方案
kubernetes
shell
面向对象编程
spring boot
zookeeper
aop
单元测试
uml
大数据
安全
数据处理
数据结构
nat
execute
interface
oop
submit
substitution
threadpoolexecutor
wait
worker
队列
线程
线程池
搜索文章
搜索
搜索
关闭
ConcurrentHashMap竟然也有死循环问题?
hashmap
jdk
node.js
感兴趣的小伙伴可以在电脑上运行下,话不说多,先说下问题原因:当执行computeIfAbsent时,如果key对应的slot为空,此时会创建ReservationNode对象(hash值为RESERVED=-3)放到当前slot位置,然后调用mappingFunction.apply(key)生成value,根据value创建Node之后赋值到slow位置,此时完成computeIfAbsent流程。但是上述代码mappingFunction中又对该map进行了一次put操作,并且触发了rehash操作,在transfer中遍历slot数组时,依次判断slot对应Node是否为null、hash值是否为MOVED=-1、hash值否大于0(list结构)、Node类型是否是TreeBin(红黑树结构),唯独没有判断hash值为RESERVED=-3的情况,因此导致了死循环问题。
luoxn28
2019-11-06
1.3K
0
别再问我ConcurrentHashMap了
http
编程算法
hashmap
node.js
以下ConcurrentHashMap以jdk8中为例进行分析,ConcurrentHashMap是一个线程安全、基于数组+链表(或者红黑树)的kv容器,主要特性如下:
luoxn28
2019-11-06
250
0
Redis常见问题指北
unix
云数据库 Redis
hashmap
缓存
编程算法
编者注:笔者整理了一份【Redis不完全指南】,包含了很多详细的知识点和Redis经典面试题,可关注「TopCoder」公众号,发送 Reids 来获取~
luoxn28
2019-11-06
810
0
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
立即发文
Python精品学习库
代码在线跑,知识轻松学
立即查看
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
立即体验
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
立即查看
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档