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

b2c电子商务网站的特点搜索引擎优化的内部优化

b2c电子商务网站的特点,搜索引擎优化的内部优化,制作网站公,网站建设与维护模板HashMap 线程安全性 线程不安全,无任何同步机制。多线程在读写情况下可能出现数据不一致的情况 底层结构 JDK 1.7及之前用的是数组加链表 JDK1.8 优化成了数组加链表加红黑树 当链表长度超过阈值就会转换成红黑树,提升查找效率。 null支持 允许…

HashMap

线程安全性

线程不安全,无任何同步机制。多线程在读写情况下可能出现数据不一致的情况 

底层结构

JDK 1.7及之前用的是数组加链表

JDK1.8 优化成了数组加链表加红黑树

当链表长度超过阈值就会转换成红黑树,提升查找效率。 

null支持

允许键和值都为null, 但是键只能有一个为null,注意HashMap的键具有唯一性;因为null的哈希值计算特殊,通常存储在数组的第一个位置附近。

性能

 单线程或者线程安全时,读写性能优秀。哈希算法可进行快速定位,链表或者红黑树处理冲突,平均的时间复杂度接近O(1)

HashTable

线程安全性

是线程安全的,通过给方法添加 synchronized 锁实现,因为给方法加锁的缘故,每个方法在同一时间只允许一个线程执行,虽然保证了数据的安全性,但在多线程的情况下性能较差。 

底层结构

 数据结构采用数组加链表的形式,通过哈希算法确定元素的位置,哈希冲突时用链表解决。

null支持

不允许键或值为null ,如果尝试插入null 会直接抛异常。HashTable 内部代码对 null 做了严格的检查。 

性能

多线程环境下,线程竞争锁激烈,读写性能低下;若单线程使用还有锁的开销不如直接用HashMap,基本已经被淘汰 

ConcurrentHashMap

线程安全性

是线程安全的,采用优化的锁策略, 跟HashTable 不同的是锁粒度更细,并发性能更高。

底层结构

JDK 1.7 也是数组加链表的形式,将数组元素分组去加锁;在JDK1.8 采用数组加链表加红黑树的形式,对每个数组元素加锁。通过CAS与锁保证多线程下的数据一致性。

null支持

不允许键或值为null,在多线程中,null可能会导致歧义,例如无法区分是初始化的null 还是插入的null。 

性能

 多线程并发读写性能优越,读操作几乎无锁,写操作锁粒度更细,减少了线程竞争,在高并发场景性能接近HashMap。

总结

名称HashMapHashTableConcurrentHashMap
线程安全性非线程安全线程安全线程安全
底层结构

JDK1.7数组+链表

JDK1.8数组+链表+红黑树

数组+链表

JDK1.7数组+链表

JDK1.8数组+链表+红黑树

null支持允许键值为null不允许键值为null不允许键值为null
性能单线程性能优,多线程不安全多线程性能差多线程性能优

http://www.cadmedia.cn/news/2523.html

相关文章:

  • 网站收录目录源码网络营销的十大特点
  • 注册网站后邮箱收到邮件青岛seo百科
  • 企业运营流程百度seo公司整站优化
  • 安居客官网网站东莞seo建站推广费用
  • 口碑好的网站建设哪家好软文营销的优势
  • 赣州网站建设网站百度
  • 网站建设英文方案十大技能培训机构排名
  • 国土资源局网站建设制度seo优化的内容有哪些
  • 建设英文网站seo快速排名是什么
  • 前端开发助理是培训机构吗优化大师手机版
  • 网站开发运行环境有哪些河北seo诊断培训
  • 域名访问网址深圳做网站seo
  • 青海省城乡建设信息官官方网站成都seo优化公司排名
  • 南昌网站建设价格百度识图在线
  • 网站建设内容策划案免费网页代码大全
  • 园区网站建设洛阳seo博客
  • 全国企业老板电话名录seo权重是什么意思
  • 遵义网站建设txwlseo公司杭州
  • 网站设计参考文献有哪些常用的seo网站优化排名
  • 哪个网站做欧洲旅行比较好网络营销策划方案3000字
  • 移动网站建设推荐国际热点事件
  • 网站建设注册密码咋弄长春网站公司哪家好
  • 成都那家做网站好优化人员配置
  • 广西茶叶学会 网站建设培训平台有哪些
  • 汕头手机模板建站企业seo推广的绝密诀窍曝光
  • 德阳网站建设平台搜索引擎的工作原理是什么
  • 深圳网站建设卓企渠道网官网
  • 深圳网站建设服务类公司优缺点电商seo搜索引擎优化
  • 现在网站开发模式域名
  • 公司员工培训内容有哪些惠州seo推广外包