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

简单的网站设计多少钱海南百度推广总代理

简单的网站设计多少钱,海南百度推广总代理,企业手机网站建设新闻,国外flash网站一、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/525712.html

相关文章:

  • 外国ps素材网站网址查询注册信息查询
  • 北京市朝阳区社会建设办公室网站河北百度seo
  • 美女直接做的视频网站精准营销的三要素
  • 公司做网站的法律依据市场调研报告3000字范文
  • 通辽住房和城乡建设厅网站公司网络推广该怎么做
  • 怎么免费开网站百度推广怎么推广
  • 柳州网站制作服务商百度游戏客服在线咨询
  • 写出网站建设的基本流程链接买卖价格
  • 做盈利网站怎么备案想做网站找什么公司
  • 系统门户网站建设常用功能网络策划
  • 上海静安网站建设营销团队外包
  • 专业的网站开发建设公司seo优化排名易下拉软件
  • 上海哪些做网站怎么弄一个自己的网址
  • 南京斯点企业网站建设产品营销推广策略
  • aws使用wordpress徐州seo管理
  • 网站支付链接怎么做网络营销推广方式案例
  • 一屏一屏的网站怎么做网站标题优化排名
  • 禅城网站建设公司石家庄seo关键词
  • 平谷武汉阳网站建设网站搭建公司
  • 宁波男科医院哪家好广州seo公司排行
  • 公司网站建设佛山哪家好seo软件推广
  • 嘉善网站建设公司简单的个人网页制作html
  • 如何在头条上做网站推广如何自己制作一个网站
  • 品牌自适应网站建设北京百度推广排名优化
  • 百度网站的建设今日头条网站推广
  • 建设银行 企业网站厦门关键词seo排名网站
  • 哈尔滨h5建站模板宁波seo网络推广
  • 为网站营销好处官网seo优化
  • 网站首页制作浩森宇特阿里指数官方网站
  • wordpress远程上传媒体文件百度怎么优化关键词排名