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

wordpress 不同边栏百度seo网站

wordpress 不同边栏,百度seo网站,营销网站做得好的公司,广州官网建设1.引言在多线程的环境中#xff0c;如果想要使用容器类#xff0c;就需要注意所使用的容器类是否是线程安全的。在最早开始#xff0c;人们一般都在使用同步容器(Vector,HashTable),其基本的原理#xff0c;就是针对容器的每一个操作#xff0c;都添加synchronized来进行同…1.引言在多线程的环境中如果想要使用容器类就需要注意所使用的容器类是否是线程安全的。在最早开始人们一般都在使用同步容器(Vector,HashTable),其基本的原理就是针对容器的每一个操作都添加synchronized来进行同步此种方式尽管简单但是其性能是非常地下的所以现在已经不怎么使用了。人们普遍会使用并发的容器在JDK1.5之后针对基于散列的Map提供了新的ConcurrentHashMap针对迭代需求的list提供了CopyOnWriteList.2.ConcurrentHashMapConcurrentHashMap使用了一种分段锁的策略使得map可以被多个读写线程并行的访问。基本可以认为是将map的key值范围分为多个段这样多个线程访问的时候他们需要访问的key值在不同的段所以可以互相不干扰使用不同的锁对象来进行并发操作。ConcurrentHashMap在使用迭代器遍历的时候不会报ConcurrentModificationException提供“弱一致性”。在遍历迭代的时候也会反应出在迭代器创建之后的数据修改。应用场景针对一般的有并发需求的map都应该使用ConcurrentHashMap. 它的性能优于Hashtable和synchronizedMap。缺点不是强一致性由于是采用的分段锁策略所以一些数据不能保证强一致性。比如针对容器的size方法由于线程A只是获得了自己的分段锁它不能保证其他线程对容器的修改所以此时线程A可能使用size会得到不稳定数据。这种情况下是对同步性能的一些折衷。如果业务需求必须满足强一致性才会需要对整个Map进行锁操作。并发容器的弱一致性的概念背景是在高并发情况下容器的size和isEmpty之类的方法用处不大所以可以忍受数据不一致性。3.CopyOnWrite容器在JDK1.5之后java.util.concurrent引入了两个CopyOnWrite容器分别是CopyOnWriteArrayList, CopyOnWriteArraySet.顾名思义CopyOnWrite就是在write操作之前对集合进行Copy针对容器的任意改操作(add,set,remove之类),都是在容器的副本上进行的。并且在修改完之后将原容器的引用指向修改后的副本。如果线程A得到容器list1的iterator之后线程B对容器list1加入了新的元素由于线程A获得list1的iterator时候在线程B对list1进行修改前所以线程A是看不到线程B对list1进行的任何修改。具体到源码看一下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) {final ReentrantLock lock this.lock;lock.lock();try {Object[] elements getArray();int len elements.length;Object[] newElements Arrays.copyOf(elements, len 1);newElements[len] e;setArray(newElements);return true;} finally {lock.unlock();}}可以发现写操作是会有个锁lock.lock()这保证了多线程写操作之间的同步。之后使用Arrays.copyOf来进行数组拷贝在修改完成后setArray(newElements)将原来的数组引用指向新的数组。应用场景经常用在读多写少的场景比如EventListener的添加网站的category列表等偶尔修改但是需要大量读取的情景。缺点1.数据一致性的问题。因为读操作没有用到并发控制所以可能某个线程读到的数据不是实时数据。2.内存占用问题。因为写操作会进行数据拷贝并且旧有的数据引用也可能被其他线程占有一段时间这样针对数据比较大的情况可能会占用相当大的内存。并且由于每次写操作都会占用额外的内存最后进行的GC时间也可能相应的增加。4.HashSetHashSet内部是用的HashMap,只用了HashMap的key。同步集合传统集合类在并发访问时的问题说明死锁死循环传统方式下用Collections工具类提供的synchronizedCollection方法来获得同步集合分析该方法的实现源码Java5中提供了如下一些同步集合类通过看java.util.concurrent包下的介绍可以知道有哪些并发集合ConcurrentHashMapCopyOnWriteArrayListCopyOnWriteArraySet传统方式下的Conllection在迭代结合时不允许对集合进行修改。根据AbstractList的checkForComodification方法的源码分析产生ConcurrentModificationException异常的原因。public class User implements Cloneable{private String name;private int age;public User(String name, int age) {this.name name;this.age age;}public boolean equals(Object obj) {if(this obj) {return true;}if(!(obj instanceof User)) {return false;}User user (User)obj;//if(this.nameuser.name this.ageuser.age)if(this.name.equals(user.name) this.ageuser.age) {return true;}else {return false;}}public int hashCode() {return name.hashCode() age;}public String toString() {return {name: name ,age: age };}public Object clone() {Object object null;try {object super.clone();} catch (CloneNotSupportedException e) {}return object;}public void setAge(int age) {this.age age;}public String getName() {return name;}}
http://www.yutouwan.com/news/357614/

相关文章:

  • 电商素材网站重庆招标信息网官网
  • 关于网站建设的论文提纲连云港市建设局网站安全员考试
  • 个人能申请网站吗wordpress配置数据库失败6
  • 中国建设银行官网站账户商品注册网站地址
  • 网站开发时数据库的工作全国住房和城乡建设厅官网
  • 别人抄袭网站设计怎么办vs2015做网站
  • 北京市住房及城乡建设部网站wordpress素锦
  • 做网站需要网络服务器北京市基础建设质量监督局网站
  • 佛山建站公司哪家好专业教育网站建设
  • 动易学校网站管理系统 漏洞seo外链优化培训
  • 企业网站哪里可以做深圳微商城网站制作费用
  • 雅安网站制作wordpress后台分类目录添加自定义
  • 学做简单网站深圳企业社保网站官网
  • 网站建设价格怎么算网站制作的内容包含
  • 公司网站设计与制烟台 做网站
  • 网站服务器放置地查询wordpress调用外链图片
  • 无锡网络公司无锡网站制作做跨境电商被骗了三万
  • 网站赏析软文时光发稿平台
  • 订货网站建设建设vip网站相关视频
  • 有什么网站做打印店品牌vi设计案例分析
  • 什么软件做网站描述正规网站建设定制
  • 网站建设专业名词解释网站制作wordpress页面模板下载地址
  • 深圳市公司网站建设企业小程序制作开发定制
  • 做网站的上香动画免费虚拟机安卓版
  • 如何做强企业网站怎么建立自己的公众号
  • 三门县正规营销型网站建设地址制作充值网站
  • html5 制作手机网站阿克顿巴网站建设的目的
  • 成都网站制作套餐wordpress调用文章的tags
  • 网站建设费是什么意思整站seo包年费用
  • 技术号的网站建设免费网络加速