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

建设静态网站做网站用哪些软件

建设静态网站,做网站用哪些软件,微信公众号红包网站开发,商城网站怎么做的一、CopyOnWriteArrayList 源码解读 在 JUC 中#xff0c;对于 ArrayList 的线程安全用法#xff0c;比较推崇于使用 CopyOnWriteArrayList #xff0c;那 CopyOnWriteArrayList是怎么解决线程安全问题的呢#xff0c;本文带领大家一起解读下 CopyOnWriteArrayList 的源码…一、CopyOnWriteArrayList 源码解读 在 JUC 中对于 ArrayList 的线程安全用法比较推崇于使用 CopyOnWriteArrayList 那 CopyOnWriteArrayList是怎么解决线程安全问题的呢本文带领大家一起解读下 CopyOnWriteArrayList 的源码主要对几个常用的函数进行讲解。 在进行 CopyOnWriteArrayList 的源码讲解之前先看下同样实现了线程安全的 Vector 很多文章都说不推荐使用 Vector 其主要原因是性能太差了那性能为什么这么差呢可以看下 Vector add 和 get 的源码 Vector 的添加和读取操作都被加上了 synchronized 锁当并发情况下因为锁的存在相当于变成了单线程的操作所以效率肯定低同样这样的优点就是保证了数据的唯一性不会读取到脏数据。 下面再看下 CopyOnWriteArrayList 是如何解决并发问题的呢。 首先看下 CopyOnWriteArrayList 的全局变量有哪些 其中 lock 锁就是每次在做写操作时锁的句柄array 就是具体存储数据的数组注意这里的 array 被 volatile 所修饰因此可以在并发情况下实现数据的可见性。 当 new 创建了一个 CopyOnWriteArrayList 时如果是使用无参的构造函数则将 array 的长度默认成 0 创建了一个空的数组。 在使用 add 添加数据时先使用 lock 上锁并获取到当前的 array 数组然后对 array 进行 copyOf新的数组的长度是之前的长度 1 这样才能存放当前新的值将新值填充后再替换掉旧的 array 数组后释放当前锁。 在使用 get 获取指定下边数据时直接对当前的 array 进行操作 在进行 remove 删除时先使用 lock 上锁然后再获取当前的 array 数组如果传入的 index 正好是最后一个那么 numMoved 计算出来就是 0 则使用 copyOf 长度进行 -1 去除最后一个数据。否则传入的不是最后一个先声明一个新的 array 数组数组的长度就是旧的 array 的 len - 1再将 0 到 index 的数据 arraycopy 至新的 array 数组然后再将 index 1 后的再 arraycopy 至新的 array 数组最后将新的 array 数组替换旧的然后释放锁。 二、总结 当 new 新建一个 CopyOnWriteArrayList 后会生成一个数组 array 来存放添加的内容如果是无参的构造函数则 array 的长度为 0 添加数据时再进行扩容。同时会声明一个 ReentrantLock 锁。当进行 add 操作时先进行上锁然后对当前的 array 进行 copyOf并且新的长度是之前的长度 1 这样才能存放当前新的值将新值填充后再替换掉旧的 array 数组后释放当前锁。当使用 get 获取数据时无需上锁直接读取当前 array 数组的指定位置。当使用 remove 时同样先进行上锁然后再获取当前的 array 数组如果传入的 index 正好是最后一个则使用 copyOf 长度进行 -1 否则的话先声明一个新的 array 数组现将0 到 index 的数据 arraycopy 至新的 array 数组然后再将 index 1 后的再 arraycopy 至新的 array 数组最后将新的 array 数组替换旧的然后释放锁。 读下来之后可以感觉出来 CopyOnWriteArrayList 的源码非常容易理解和阅读同时我们也可以看出一些问题CopyOnWriteArrayList 实现了写写隔离但读读是可以共享的这就有可能出现当某个数据再修改时读进行了操作导致读取到的还是旧的数据。还有就是每次写操作都对数组进行 Copy 假如数据量非常大的情况下进行 Copy 消耗的资源则会进行 x 2 因此使用 CopyOnWriteArrayList 时需要考虑下自己的数据量以及读写的频次。
http://www.w-s-a.com/news/630847/

相关文章:

  • 网站字体规范wordpress找不到页面内容编辑
  • 静态网站建设参考文献茂名营销型网站制作公司
  • 君山区建设局网站风铃微网站怎么做
  • 购物网站销售管理合肥网络推广平台
  • 网站建设规划书txt微盘注册帐号
  • 小说网站开发实训报告企业网盘收费标准
  • mvc网站开发医疗医院网站建设
  • 天津市建设厅官方网站wordpress设置404
  • 贵阳好的网站建设免费正能量网站下载ww
  • 免费学习的网站平台自建站seo如何做
  • 海南三亚做网站公众号版面设计创意
  • 学校网站建设目的与意义合肥网页定制
  • 网站查询地址网站建设与维护费用
  • 做网站哪些软件比较好合肥外贸网站建设公司
  • 建网站需要哪些条件专业网站设计报价
  • 定制网站开发技术化妆品的网站布局设计图片大全
  • 网站模糊设计发布产品的免费平台有哪些
  • 网站建站什么目录桂林网站建设内容
  • 光明新区城市建设局网站长沙营销型网站制作费用
  • 网站建设制度制定wordpress主题哥
  • 门户网站的种类php网站开发实训心得
  • 流程图制作网页网络优化seo
  • 个人公益网站怎么制作wordpress flat theme
  • 做营销型网站的公司篇高端网站愿建设
  • 五莲网站建设维护推广凡科做网站的方法
  • 山东省住房建设厅网站首页网站文章更新怎么通知搜索引擎
  • 商务网站的可行性分析包括大流量网站 优化
  • 推广网站有效的方法网站数据统计
  • 自建视频网站WordPress数据库添加管理员
  • 新民电商网站建设价格咨询网站建设高效解决之道