news 2026/6/25 19:14:56

Java常见技术分享-18-多线程安全-进阶模块-并发集合与线程池

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java常见技术分享-18-多线程安全-进阶模块-并发集合与线程池

基本上 Java中重要的多线程编程重要的类都在java.util.concurrent包里边

并发集合 - ConcurrentHashMap

具体实现
Java7

核心实现: 分段锁(原本是 给整个哈希表加全局锁, 变成了对数组的某一范围进行加锁, 通过缩小锁的范围,让更多的操作可以并行执行,保证线程安全)

Java8

核心实现: CAS加上synchronized

核心流程:

volatile 针对哈希表数组的 每一个元素 对应的 链表头 或者 红黑树 根节点 进行修饰 保证了 可见性。

当线程尝试 去 设置 值的时候,比如put(key , value ) ,根据 key找到对应的下标, 然后在插入的操作前 去内存读取 数组中这个下标 对应的 链表头节点(【该数组索引位的旧头节点的引用】), 接着就会执行CAS操作 , compare比较的是 自己当前感知到的 【该数组索引位的旧头节点的引用】, 把这个当作预期值, 如果预期值一致, 那么把 这个索引位 的值更新成 新节点的引用, 这个新节点 后面理论上就是旧的节点。

如果CAS 操作失败, 说明已经有别的线程已经操作了, 失败就会自旋重试 , 典型乐观锁, 当线程竞争激烈的时候, 就会对 链表头节点对象 加synchronized关键字 ,进行加锁
比如synchronized(node) { 插入删除操作}

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/16 1:21:18

算法-回溯-14

力扣-真题-复原IP地址IP地址, 一个数字 转换成四个, 需要用三个标点符号, 其实就是三次选择, 选择的位置不能 一样, 同时 这个标点符号 前的数字 需要满足 前缀不能为0 ,数字 在 0 到 255 (当 字符串的长度大于3 直…

作者头像 李华
网站建设 2026/6/16 17:43:58

YOLO模型缓存一致性维护:主从同步与失效传播

YOLO模型缓存一致性维护:主从同步与失效传播 在现代工业级AI系统中,实时目标检测早已不再是实验室里的概念验证,而是驱动自动化决策的核心引擎。从智能工厂的缺陷识别到城市交通中的车辆追踪,YOLO(You Only Look Once&…

作者头像 李华
网站建设 2026/6/24 22:21:31

提示工程实战:如何用Prompt让游戏AI理解玩家的“隐藏需求”

提示工程实战:如何用Prompt让游戏AI理解玩家的“隐藏需求” 关键词:提示工程、游戏AI、Prompt、隐藏需求、自然语言处理、人工智能、玩家体验 摘要:本文主要探讨在游戏领域中,如何运用提示工程,通过精心设计的Prompt让游戏AI能够理解玩家的隐藏需求,从而提升玩家的游戏体…

作者头像 李华
网站建设 2026/6/25 10:12:56

YOLO模型灰度发布完成后正式版替换流程

YOLO模型灰度发布完成后正式版替换流程 在智能制造工厂的质检线上,一台搭载YOLOv8的视觉检测系统正以每秒上百帧的速度判断产品是否存在划痕。突然,新上线的YOLOv10模型开始频繁将正常纹理误判为缺陷——如果这发生在全量部署之后,整条产线可…

作者头像 李华
网站建设 2026/6/17 17:15:05

YOLO模型缓存雪崩防范:随机过期时间设置技巧

YOLO模型缓存雪崩防范:随机过期时间设置技巧 在现代AI驱动的工业系统中,实时视觉感知几乎无处不在——从智能工厂的质检流水线,到城市路口的交通监控摄像头,YOLO(You Only Look Once)系列模型早已成为这些场…

作者头像 李华