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

智能建站系统官网北京网络seo推广公司

智能建站系统官网,北京网络seo推广公司,品牌网站有哪些内容,无法调用wordpress一、Vector和ArrayList、LinkedList联系和区别,分别的使用场景 ArrayList:底层是数组实现,线程不安全,查询和修改非常快,但是增加和删除慢 LinkedList: 底层是双向链表,线程不安全,查询和修改…

一、Vector和ArrayList、LinkedList联系和区别,分别的使用场景

ArrayList:底层是数组实现,线程不安全,查询和修改非常快,但是增加和删除慢

LinkedList: 底层是双向链表,线程不安全,查询和修改速度慢,但是增加和删除速度快

Vector: 底层是数组实现,线程安全的,操作的时候使用synchronized进行加锁

使用场景:

  • Vector已经很少用了
  • 增加和删除场景多则用LinkedList
  • 查询和修改多则用ArrayList

二、如果需要保证线程安全,ArrayList应该怎么做,有几种方式

方式一:使用Collections.synchronizedList(synchronized加锁)

List<String> synchronizedList = Collections.synchronizedList(new ArrayList<>());

方式二:使用 CopyOnWriteArrayList(ReentrantLock加锁)

List<String> cowList = new CopyOnWriteArrayList<>();

三、CopyOnWriteArrayList和 Collections.synchronizedList实现线程安全的区别以及它们的使用场景

CopyOnWriteArrayList:执行修改操作时,会拷贝一份新的数组进行操作(add、set、remove等),在执行完修改后将原来集合指向新的集合来完成修改操作,源码里面用ReentrantLock可重入锁来保证不会有多个线程同时拷贝一份数组

使用场景:读高性能,适用读操作,读操作远远大于写操作的场景中使用(因为读的时候是不需要加锁的,直接获取,删除和增加是需要加锁的, 读多写少)

Collections.synchronizedList:线程安全的原因是因为它几乎在每个方法中都使用了synchronized同步锁

使用场景:读操作性能并不如CopyOnWriteArrayList(因为读操作的时候有加锁)

四、CopyOnWriteArrayList的设计思想以及它有什么缺点

设计思想:读写分离+最终一致,读的时候是读旧的数组

缺点:内存占用问题,写时复制机制,内存里会同时驻扎两个对象的内存,旧的对象和新写入的对象,如果对象大则容易发生Yong GC和Full GC

http://www.dtcms.com/wzjs/307919.html

相关文章:

  • 重庆互联网网站建设免费发布推广信息的平台有哪些
  • 一级a做爰片免费网站录像搜索引擎优化seo是什么
  • 零基础网站开发要学多久四川seo推广方案
  • 凡客官方网站免费网站推广网站不用下载
  • 整页图片广告网站源码百度用户客服电话
  • 郑州哪家做网站最好网络推广营销技巧
  • 软件网站免费天津搜索引擎推广
  • 福州正规网站建设公司报价个人网站设计方案
  • 西安网站开发公司怎么选seo排名怎样
  • 吉林市网站制作西安网站建设方案优化
  • 海南建设网网站百度推广天津总代理
  • pc站转换手机网站广告公司招聘
  • 空间ip地址访问网站市场营销的八个理论
  • wdcp网站搬家网站seo查询
  • 济南快速建站模板广州seo优化公司排名
  • 毕业论文参考文献网站宁德市蕉城区疫情
  • 可以做营销任务的网站墨子学院seo
  • 石景山 网站建设百度网盘会员
  • 论坛建立网站高端建站
  • 解析域名就可以做网站sem竞价专员
  • 网站关键词做标签软件培训机构排行榜
  • 做网站 你的出路在哪里百度人工客服在线咨询
  • 百度网站收录提交入口青岛百度网站排名
  • 网站描述多个词怎么分隔seo网站首页推广
  • 网站怎么做免费推广方案关键词排名推广
  • 阅读网站源码中国国家培训网是真的吗
  • 佛山做网站制作有什么可以做推广的软件
  • 查询网站真实点击量北京百度推广代运营
  • 珠海做网站哪间好seo百科大全
  • 包头学做网站微信营销的案例