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

河北综合网站建设系列免费建网站代理

河北综合网站建设系列,免费建网站代理,杭州优化商务服务公司,管理咨询公司招聘条件【多线程环境下使用哈希表(重点掌握)】 可以使用类:“ConcurrentHashMap” ★ConcurrentHashMap对比HashMap和Hashtable的优化点 1.优化了锁的粒度【最核心】 //Hashtable的加锁,就是直接给put,get等方法加上synch…

【多线程环境下使用哈希表(重点掌握)】

可以使用类:“ConcurrentHashMap”

★ConcurrentHashMap对比HashMap和Hashtable的优化点

1.优化了锁的粒度【最核心】

//Hashtable的加锁,就是直接给put,get等方法加上synchronized,就是给this加锁,整个哈希表对象就是一把锁,任何一个针对这个哈希表的操作都会触发锁竞争

而ConcurrentHashMap是给每个哈希表中的“链表”进行加锁(将每个链表头都作为一个锁对象),构成多把锁,形成“锁桶”

这可以保证线程安全

这可以大大降低锁冲突的概率(只有同时进行的两次修改,恰好在修改同一个链表上元素时,才会触发锁冲突)

2.引入了CAS原子操作

哈希表有一个size(链表大小)这样的变量,针对像修改size这样的操作,直接借助CAS完成,不会加锁

3.针对读操作,做了特殊处理

上述的加锁,只是针对写操作来加锁

对于读操作,通过volatile以及一些精巧的代码实现,确保读操作不会读到“修改一半的数据”

4.针对哈希表的扩容,进行了特殊的优化,可以令操作更加稳定

普通哈希表扩容,需要创建新的哈希表,把元素都搬运过去,这一系列操作,很有可能就在一次put就完成了,就会令这次put开销很大,耗时长

ConcurrentHashMap进行了“化整为零”,不会在一次操作中进行所有的数据搬运,而是一次只搬运一部分(创建新空间的同时,也保留旧空间),此时后续的每次操作都会触发一部分key的搬运,最终把所有的key都搬运完成

当新旧空间同时存在时:

1.插入操作——直接插入到新的空间中

2.查询/修改/删除,都是需要同时对旧的空间和新的空间进行操作

http://www.hyszgw.com/news/32714.html

相关文章:

  • 网站建设与栏目设置网站 租用服务器价格
  • 商丘网站建设优化推广网络电商培训课程网站设计
  • 霍邱网站设计6做网站
  • 做网站交易平台挣钱吗长沙有什么好玩的游乐场
  • 为什么企业要建设网站怎么做外网网站监控
  • 垫江网站开发djrckj程序员招聘求职的网站
  • 河南火焰山网站开发禹网站优化 网站建设公司
  • 云南网站设计平台新能源汽车公司
  • 网站开发本地环境微信头像定制软件
  • 张家港外贸网站建设常州app开发公司
  • 广州市 优化推广怎样做网站的优化 排名
  • 如何在手机上做app网站优化招聘
  • 网站开发h5页面婚庆公司收费标准
  • 免费做网站刮刮卡云南本地企业做网站
  • 创建网站代码是什么网站项目建设的定义
  • wordpress黑客主题广州搜索引擎优化
  • django网站开发视频教育网站建站需求
  • 做网站用的图片网站301在哪做
  • 有哪些官网做的比较好的网站厦门集团网站设计公司
  • 深圳网站设计深圳设计公司easyphp安装wordpress
  • 东莞市专注网站建设怎么样网络公司官网
  • 做阀门销售在哪个网站上做好人力资源公司外包
  • 泉州 网站制作开发小程序用什么语言
  • 东莞网站快速排名网络营销推广方法选择
  • 建设银行官方网站云服务中心你对网站第一印象
  • 毕业答辩企业网站开发的问题必须网站的访问量
  • 辽阳网站建设站长工具官网域名查询
  • 安阳网站优化公司推荐微信小程序开发者
  • 米东区成业建设集团公司网站wordpress4.9.4环境要求
  • 公司门户网站开发加强网站网络安全建设方案