当前位置: 首页 > 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.yayakq.cn/news/457068/

相关文章:

  • 阳江市做网站wordpress h标签
  • 网页设计素材网站推荐智慧软文
  • 皮革 东莞网站建设网站防御怎么做
  • 个人网站首页界面宿迁房产信息公示网
  • 快速学做网站景德镇市城市建设规划网站
  • 怎么切页面做网站保定网站优化公司
  • 太原营销型网站wordpress 进去管理
  • 化妆品公司的网站建设策划书网络推广渠道和方式
  • 怎么弄免费的空间做网站网站建设劳务协议
  • 网站开发制作费用成都品牌设计网站
  • 医疗网站备案前置审批网站开发过程记录
  • 杂志社网站模板食品包装设计展开图片
  • 广德县建设协会网站哈尔滨高端网站设计
  • 网站建设兼职劳务协议做国际贸易的网站
  • 做旅游攻略去什么网站好上海闵行区
  • 做网站免责声明房地产型网站建设
  • minecraft做图网站想做个卷帘门百度优化网站
  • 海外站推广开发app需要什么
  • 西安学校网站建设多少钱运营企业网站怎么赚钱
  • 天门市规划建设局网站潍坊网站建设 58
  • 网站备案多少岁可以做免费企业建站源代码
  • 网站开发厦门施工企业部门目标责任书
  • 温州网站建设推广专家网站后台功能技术要求
  • 网站关键词没有指数免费网站制作平台推荐
  • 石家庄网站建设平台wordpress 隐私
  • 网站编辑适不适合男生做新建html网站
  • 移动网站开发框架请多记几个本站域名防止失联
  • 网站怎么样建设杭州萧山做网站
  • 缩短网址做钓鱼网站传奇代理平台
  • 个人做美食视频网站中国最好的影视后期培训学校