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

wordpress网站没有阅读量音乐APP网站开发

wordpress网站没有阅读量,音乐APP网站开发,zt16j门户网,诚信通与网站建设区别目录 一. 多线程下使用ArrayList 1.1. 自行判断加锁 1.2 使用Collections.synchronizedList()套壳加锁 1.3 CopyOnWriteArrayList类 二. 总结 一. 多线程下使用ArrayList 多线程下使用ArrayList会涉及到线程安全问题, 例如: public static void main(String[] args) thro…目录 一. 多线程下使用ArrayList 1.1. 自行判断加锁 1.2 使用Collections.synchronizedList()套壳加锁 1.3 CopyOnWriteArrayList类 二. 总结 一. 多线程下使用ArrayList 多线程下使用ArrayList会涉及到线程安全问题, 例如: public static void main(String[] args) throws InterruptedException{ListInteger list new ArrayList();Runnable runnable () - {for (int i 0; i 50000; i) {list.add(i);}};// 创建两个线程for (int i 0; i 2; i) {new Thread(runnable).start();}Thread.sleep(5000);System.out.println(list.size());} 可以发现, 最后的结果并不是期待的100000, 这是因为ArrayList中的add方法并没有处理线程安全问题. 那么, 如何解决在多线程场景下使用ArrayList产生的线程安全问题呢? 如下, 有三种解决方案. 1.1. 自行判断加锁 就是根据需要来进行加锁, 将一些可能会产生线程安全问题的操作通过加锁打包成为原子操作. Runnable runnable () - {for (int i 0; i 50000; i) {synchronized (locker) {list.add(i);}}}; 结果正如我们所期待的那样. 1.2 使用Collections.synchronizedList()套壳加锁 对读操作和写操作全部都加锁, 保证线程安全. (此时返回的List对象中的重要操作都加锁了) 但是会降低程序运行效率, 因为读操作本身不会产生线程安全问题, 又加锁就是多此一举了!!! 我们来看看synchronizedList类中add方法是怎么实现的,  public void add(int index, E element) {synchronized (mutex) {list.add(index, element);}} 此时, 结果也是正确的. 1.3 CopyOnWriteArrayList类 CopyOnWrite 写时拷贝, 实现了读与读不互斥, 读与写不互斥, 写与写互斥. 保证了线程安全. 那么, 是怎么实现读与写不互斥的呢? 在面临写操作的时候, 会依照旧数组复制一个新数组, 修改操作就在新数组上进行, 最后再将旧数组覆盖.如果在写操作的时候发生了线程切换, 并且切换到了读操作, 此时还是会读取旧数组. 保证了线程安全. CopyOnWriteArrayList类中add方法的实现: /*** Appends the specified element to the end of this list.** param e element to be appended to this list* return {code true} (as specified by {link Collection#add})*/public boolean add(E e) {synchronized (lock) {Object[] es getArray();int len es.length;es Arrays.copyOf(es, len 1);es[len] e;setArray(es);return true;}} 结果也是正确的. 二. 总结 1. 多线程下使用ArrayList类, 涉及到了线程安全问题, 以及解决线程安全问题的方法. 2. 自行判断加锁. 效率高 3. Collections.synchronizedList()套壳封装, 效率低下. 因为对不涉及线程安全问题的操作进行加锁.(即对List接口中的所有方法进行加锁) 4. CopyOnWriteArrayList类, 写时拷贝. 实现了读与读, 读与写操作不互斥, 写与写操作互斥. 保证了线程安全, 并且效率相对高效.
http://www.hkea.cn/news/14489760/

相关文章:

  • 网站内容建设的布局和结构网站型营销
  • 网站建设校长信箱设计方案建设一个旅游网站
  • 国外免费建站网站wordpress用图床好还是
  • 图片站wordpress模板下载视频网站开发书籍
  • 威海网站开发怎么设计一个网站
  • 专业外贸公司网站合肥做公司网站
  • 网站建设和管理专业有哪些做海报的网站
  • 企业建立企业网站有哪些优势?iis搭建多个网站
  • 网站建设与网站管理app网站模板
  • 盐边网站建设网站建设教程公司
  • 内蒙建设厅网站怎么查建筑电工证阿里云做网站需要些什么
  • 3030wa网站开发学校手机移动端
  • 管理手机网站网站建设实训主要收获及体会
  • 网站代运营网站安全建设需求分析报告
  • 网站开发前景好吗wordpress+图片库
  • 潍坊网站建设排行苏州知名高端网站建设企业
  • 科技公司网站建设方案书模板成品网站建站空间
  • 凡科做网站行吗发稿计划
  • 西安微信平台网站建设wordpress id 作为别名
  • 与设计行业相关的网站祁东seo公司
  • 长春火车站和高铁站是一个站吗网站开发工程师简历
  • 怎么看网站是不是做竞价seo的含义是什么意思
  • 网站建设与管理课后总结越秀建设网站
  • 蓝色大气网站欣赏百度做网站为什么上阿里云备案
  • 深圳企业做网站公司有哪些做自己的网站需要什么
  • 做外贸要看哪些网站美食软文300字
  • 做美食原创视频网站山西网络营销
  • 帮人注册网站_做app哪些网站可以赚钱
  • 网站图解图片是用什么软件做的北京高端网站建
  • 知名的wordpress网站做期货浏览哪些网站