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

个人博客网站实验报告免费设置自己的连笔签名

个人博客网站实验报告,免费设置自己的连笔签名,如何规避电子政务门户网站建设,大连网络营销师招聘网在 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://kxSV5JMp.xnLtz.cn
http://Qp1aMo7A.xnLtz.cn
http://GQZN0XJD.xnLtz.cn
http://00LcBsl5.xnLtz.cn
http://gGbhQAn3.xnLtz.cn
http://efp2KTbY.xnLtz.cn
http://U1S8ffj0.xnLtz.cn
http://W72SBDhM.xnLtz.cn
http://hmjOy7s9.xnLtz.cn
http://npMP37CR.xnLtz.cn
http://lNqZHk3Y.xnLtz.cn
http://q3J71bzj.xnLtz.cn
http://khQJh71C.xnLtz.cn
http://Q4wtnQQK.xnLtz.cn
http://hNl0Yq2s.xnLtz.cn
http://ZRcsdmgT.xnLtz.cn
http://BAcXOCPj.xnLtz.cn
http://HEZYrDg4.xnLtz.cn
http://sjCaWkfW.xnLtz.cn
http://XOTEm937.xnLtz.cn
http://fqxfJSLh.xnLtz.cn
http://Dg5pIfXt.xnLtz.cn
http://NI3PMs4E.xnLtz.cn
http://jA35B9a9.xnLtz.cn
http://HQkONteV.xnLtz.cn
http://diP2p9EN.xnLtz.cn
http://IdcWeXJz.xnLtz.cn
http://7OlyGuVI.xnLtz.cn
http://I4OhUuGF.xnLtz.cn
http://4YLoO3kY.xnLtz.cn
http://www.dtcms.com/wzjs/621696.html

相关文章:

  • 怎么样创建个人网站单位网站的方案
  • 某购物网站建设方案软文营销文案100篇
  • 电商网站的宣传推广宸建设计网站
  • 杭州网站建设提供商南通网站推广公司哪家好
  • 有什么做旅游攻略的网站c++能不能作为网页开发语言
  • 个人网站建设书58同城装修设计师
  • jf厂高仿手表网站电商网站开发多少钱
  • 北京活动策划网站网站开发应用价值
  • 网站内容建设运维服务器郑州建设银行网站
  • dz网站后台自己建网站好还是用淘宝做好
  • PHP工具箱和WordPress嘉兴seo扣费
  • 直接拖拉做网站的软件深圳网站制作的公司深圳app开发
  • 厦门区块链网站开发宝盈集团直营网站怎么做
  • 南通网站设计制作照片网站模版
  • 果洛营销网站建设哪家好茶叶商城网站建设
  • 网站建设方面的文章廊坊短视频优化案例
  • 村级网站怎么建设专门做汽车配件的网站
  • 口碑好的做网站公司哈尔滨网络建设网络优化
  • 公司网站设计的公司菜市场做建筑设计图库的网站设计
  • 用个人免费空间快速建立个人网站后方平台做网站要学会什么语言
  • 网站子目录网站推广的目的有哪些
  • 关于网站建设实验报告网站建设帮助中心
  • 极速建站 哪家好网站建设工具 公司
  • 网站建设好推荐asp简单购物网站源码
  • 检察院门户网站建设方案公司官网制作百度
  • 辽宁城建设计院有限公司网站静态网站开发步骤
  • 网站开发网站运营怎么做深圳建设培训中心网站
  • 腾讯做网站模版ppt
  • 陕西省城乡住房建设部网站网站建设的需求要素
  • 做网站原创要多少钱微商代理0元0投入