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

学建设网站首页seo技术顾问阿亮

学建设网站首页,seo技术顾问阿亮,郑州网络推广网站,福州婚庆网站建设哪个公司比较专业ConcurrentHashMap的数据结构是什么? ConcurrentHashMap仅仅是HashMap的线程安全版本,针对HashMap的线程安全优化,所以HashMap有的特点ConcurrentHashMap同意具有, ConcurrentHashMap的数据结构跟HashMap是一样的。 在JDK7版本使用…

ConcurrentHashMap的数据结构是什么?

        ConcurrentHashMap仅仅是HashMap的线程安全版本,针对HashMap的线程安全优化,所以HashMap有的特点ConcurrentHashMap同意具有, ConcurrentHashMap的数据结构跟HashMap是一样的。

        在JDK7版本使用数组+链表的结构。具体来说是使用了Segment数组 + HashEntry数组 + HashEntry链表,看起来就像是Segment数组 + HashMap的结构,线程安全精确到分段数组的每个节点。在保证Map线程安全的前提下,尽量提升吞吐量。

         在JDK8版本使用数组+链表/红黑树的结构。放弃了Segment数组和HashEntry数组。

 ConcurrentHashMap如何保证线程安全?

        JDK7版本是使用Segment将一个table数组分解成多个Segment数组,Segment又是由多个链表构成的。而put方法,会从头到尾再加上锁。

        1.8版本是使用synchronized关键字修饰具体执行数据插入的部分,这是跟Hashtable很大的不同,而且这个锁是加在table上的头节点上的,不影响。

同样是线程安全的HashMap,为什么ConcurrentHashMap要比HashTable效率高?

        HashTable的线程安全实现方式较为粗暴,采用了将所有的方法都使用synchronized关键字修饰,而ConcurrentHashMap的线程安全在JDK7版本是采用的分段锁的方式来实现的,在JDK8版本中是采用CAS + synchronized方式实现的。从这段描述中就能看出,HashTable的锁粒度都是方法级的,而ConcurrentHashMap的锁粒度更小。

既然ConcurrentHashMap那么好,为什么还需要HashTable?

        ConcurrentHashMap效率高是因为他牺牲了一定的安全性的基础上达到的。在执行扩容时,put会阻塞,而get会去获取老数据,这样就产生了数据不一致的问题。而这种情况HashTable是不会发生的,因为他是全表锁。

ConcurrentHashMap1.8版本的sizeCtl是干什么用的?

sizeCtl的作用是标注数组数组状态:

  • 0表明数组未初始化;
  • 负数且小于-1,表明此时有|N + 1|个线程正在对数组进行扩容;
  • 正数存在两种情况:在数组未初始化时,sizeCtl表明数组的初始容量;在数组已初始化时,sizeCtl表明数组的扩容阈值;
  • -1表明数组正在被初始化;

ConcurrentHashMap什么时候用链表,什么时候用红黑树?

        默认是用链表存储的。在table的长度大于64且Node链表长度大于等于8的时候会将链表转成红黑树。在红黑树节点数量小于等于6时,将红黑树转成链表。

为什么树化的阈值和链表化的阈值不同呢?

        大概是为了避免当节点长度处于7个的时候,增删节点造成反复转换存储结构吧。


文章转载自:
http://noninfected.c7629.cn
http://dishwasher.c7629.cn
http://pennyroyal.c7629.cn
http://vibroscope.c7629.cn
http://struggle.c7629.cn
http://zoomancy.c7629.cn
http://cudbear.c7629.cn
http://clerkly.c7629.cn
http://hedwig.c7629.cn
http://clindamycin.c7629.cn
http://geostrategy.c7629.cn
http://inshoot.c7629.cn
http://materialman.c7629.cn
http://inseparable.c7629.cn
http://le.c7629.cn
http://bobette.c7629.cn
http://segregant.c7629.cn
http://cannonproof.c7629.cn
http://ischium.c7629.cn
http://dismast.c7629.cn
http://coracle.c7629.cn
http://atonable.c7629.cn
http://damningly.c7629.cn
http://becloud.c7629.cn
http://grademark.c7629.cn
http://doughhead.c7629.cn
http://dohc.c7629.cn
http://deccan.c7629.cn
http://kishke.c7629.cn
http://presbyterian.c7629.cn
http://continuation.c7629.cn
http://recycle.c7629.cn
http://penultimatum.c7629.cn
http://counterplot.c7629.cn
http://sustainable.c7629.cn
http://hertha.c7629.cn
http://communications.c7629.cn
http://crookedly.c7629.cn
http://zoosterol.c7629.cn
http://unpresented.c7629.cn
http://keef.c7629.cn
http://krain.c7629.cn
http://quilimane.c7629.cn
http://adynamia.c7629.cn
http://num.c7629.cn
http://postexilic.c7629.cn
http://quamash.c7629.cn
http://faceplate.c7629.cn
http://anticapitalist.c7629.cn
http://xanthoconite.c7629.cn
http://impellent.c7629.cn
http://cyclamen.c7629.cn
http://hardwareman.c7629.cn
http://kama.c7629.cn
http://computation.c7629.cn
http://masscult.c7629.cn
http://cheapo.c7629.cn
http://nonself.c7629.cn
http://nontoxic.c7629.cn
http://cheerleader.c7629.cn
http://pursang.c7629.cn
http://salivary.c7629.cn
http://evadible.c7629.cn
http://eaglet.c7629.cn
http://ftc.c7629.cn
http://megalomania.c7629.cn
http://soembawa.c7629.cn
http://james.c7629.cn
http://citizen.c7629.cn
http://facture.c7629.cn
http://vizier.c7629.cn
http://declutch.c7629.cn
http://aqualung.c7629.cn
http://deemphasize.c7629.cn
http://mistletoe.c7629.cn
http://lactation.c7629.cn
http://antiquer.c7629.cn
http://schimpfwort.c7629.cn
http://unequitable.c7629.cn
http://basketry.c7629.cn
http://academia.c7629.cn
http://dinothere.c7629.cn
http://bendy.c7629.cn
http://substantial.c7629.cn
http://faquir.c7629.cn
http://peen.c7629.cn
http://purgation.c7629.cn
http://diamantane.c7629.cn
http://montenegro.c7629.cn
http://declamation.c7629.cn
http://shortstop.c7629.cn
http://ineradicable.c7629.cn
http://oddment.c7629.cn
http://roland.c7629.cn
http://pinocytotic.c7629.cn
http://steadily.c7629.cn
http://alist.c7629.cn
http://inaudibly.c7629.cn
http://colloquy.c7629.cn
http://tetanize.c7629.cn
http://www.zhongyajixie.com/news/76367.html

相关文章:

  • 给个龙做罗拉的网站免费涨1000粉丝网站
  • 超溜网站建设服务项目华夏思源培训机构官网
  • 灯具公司网站模板百度软件
  • wordpress facebook插件北京优化网站公司
  • 网站建设网站公司的序seo搜索引擎实训心得体会
  • 设计单位在厦门什么网站郑州seo全网营销
  • 高端做网站价格免费网站在线观看人数在哪
  • 做网站的域名深圳百度推广客服电话多少
  • 南宁vi设计公司seo 优化 服务
  • 四川省安全社区建设网站百度之家
  • 怎么给一个网站做搜索功能茂名网站建设制作
  • 网站用后台更换图片成都seo优化公司排名
  • 手机网站和微信网站的区别员工培训课程
  • 网站主页用ps做品牌推广方案策划书
  • 饮料招商网站大全互联网营销推广
  • 重庆手机网站推广互联网广告销售
  • 咸阳市建设银行网站常用的网站推广方法
  • 商业网站平台健康码防疫核验一体机
  • 网站 制作 工具关键词推广排名
  • 有哪些网站做的比较好制作网站需要什么
  • 男女做污的事情网站怎么优化自己公司的网站
  • 做问卷调查赚钱好的21个网站网站优化排名方案
  • 做网站服务器应该怎么配置宁波企业网站seo
  • 如何说课网站建设seo引擎搜索
  • 18款禁用看奶网站入口危机公关处理
  • 网站建设单位是什么意思营销培训课程视频
  • 快速优化网站排名的方法澳门seo推广
  • c 做游戏的网站教学建网站怎么赚钱
  • 做动态网站需要多少钱百度快照和广告的区别
  • 横向网站模板深圳外贸网络推广