当前位置: 首页 > news >正文

微网站模板前后台信息流广告优秀案例

微网站模板前后台,信息流广告优秀案例,网站转化率排名,做民族网站的配色哪些颜色适合在 JDK 1.8 的 ConcurrentHashMap 中,之所以对“容器为空”和“计算位置为空”采取不同的处理方式,主要是因为 并发场景下的性能优化和并发安全保证。我们可以分开来看这两种情况: 1. 容器为空时,使用 volatile CAS 初始化 原因…

在 JDK 1.8 的 ConcurrentHashMap 中,之所以对“容器为空”和“计算位置为空”采取不同的处理方式,主要是因为 并发场景下的性能优化和并发安全保证。我们可以分开来看这两种情况:

1. 容器为空时,使用 volatile + CAS 初始化

  • 原因ConcurrentHashMap 采用 懒加载,并不会在构造时就初始化所有桶(Node<K, V>[] table)。

  • 实现:当第一次插入元素时,会先判断 table 是否为空:

if (tab == null || (n = tab.length) == 0) tab = initTable();
  • initTable() 方法使用 CAS(Compare-And-Swap) 操作来保证线程安全的初始化。

  • 为什么用 CAS 而不是 synchronized?

    • 目的是减少不必要的锁竞争,提高并发性能。
    • 由于初始化操作通常只需要执行一次(典型的 双重检查锁 模式),CAS 在多数情况下不会失败,所以开销较小。

2. 计算出的位置为空时,使用 CAS 插入

  • 原因:如果某个桶(即 table[index])位置为空,说明没有哈希冲突,我们可以直接尝试插入数据。
  • 实现:使用 CAS 方式直接插入:
  • if (casTabAt(tab, i, null, new Node<K, V>(hash, key, value, null))) {break; // 插入成功,退出循环
    }
    

    为什么用 CAS 而不是 synchronized?

  • 因为这个位置是 null,没有竞争,所以可以直接尝试用 无锁的 CAS 操作 插入,避免加锁的开销,提高性能。

3. 计算出的位置不为空时,使用 synchronized

  • 原因:如果 table[index] 位置已经有元素了,可能会遇到 哈希冲突,需要遍历该链表或红黑树进行替换或追加。

  • 实现

    • 先通过 synchronized 锁住该桶(synchronized (f))。
    • 然后遍历这个桶:
      • 如果 key 已存在,则更新 value。
      • 如果 key 不存在,则添加新的节点(链表 or 红黑树)。
    • 插入完成后,判断链表长度是否达到阈值(8),如果达到就转换为红黑树
  • 为什么用 synchronized 而不是 CAS?

    • CAS 只能保证单个变量的原子性,而不能保证整个链表或树结构的原子性
    • 当多个线程同时修改一个桶时,直接用 synchronized 保护整个桶的操作,避免复杂的 CAS 失败重试,提高效率。

JDK 1.8 在 ConcurrentHashMap 中通过 分阶段使用 CAS 和 synchronized,既保证了 高并发性能,又保证了 线程安全,这就是它不同情况下采用不同方式的原因。

http://www.hkea.cn/news/403303/

相关文章:

  • 做网站前端多少钱在线bt种子
  • wordpress+模版+推荐专业网站seo推广
  • 浦项建设公司员工网站2023免费推广入口
  • 如何查询某个网站的设计公司最新推广注册app拿佣金
  • 八宝山做网站公司打广告
  • wordpress vip查看插件南宁seo费用服务
  • 建站之星模板怎么设置手机如何做网站
  • 上海公司网站制作价格西安百度关键词排名服务
  • 长沙网页制作开发公司aso优化方案
  • 深圳罗湖网站制作成人电脑基础培训班
  • 无锡网站制作咨询深圳网站设计十年乐云seo
  • 大连城市建设网站seo优化顾问服务阿亮
  • 福州 网站建设沈阳seo关键词排名优化软件
  • 做网站还要买服务器吗镇江seo
  • 专门做特价的网站优化排名案例
  • 网站建设的一些问题友链交易交易平台
  • 创业初期要建立公司的网站吗seo排名优化代理
  • 做网站全屏尺寸是多少钱站长工具查询系统
  • 做企业平台的网站有哪些手机网站制作教程
  • 免费行情的软件大全下载北京公司排名seo
  • 网站联系方式要素qq群推广链接
  • div css 网站模板免费的云服务器有哪些
  • 35互联做网站好吗网店运营工作内容
  • 网站建设模拟软件营销培训课程内容
  • 深圳建网站兴田德润专业2023年最新新闻简短摘抄
  • 学校网站怎么查询录取百度相册登录入口
  • 自助建设彩票网站网址查询工具
  • 怎么创建网页的快捷方式seo入门版
  • 互联网企业网站网络优化
  • 山东手工活外发加工网四川二级站seo整站优化排名