1.ConcurrentModificationException
出现这种的原因是遍历(iterator或增强循环)同步类容器时,同时对容器内的元素进行修改造成的,可以用普通for循环解决。因为普通for循环是一个线程操作。
2.普通容器想变成线程安全的容器,那么用Collections.synchronizedCollection方法就可以实现.
3.concurrentHashMap分为16个segment片,计算size用的volitile修饰,而取值 ,和赋值是,在每一个segment内加入锁,在segment之间不加锁。
4.copyonwrite,每次进行写操作的时候,都要在原线程的数据中复制一次。操作完成之后,都会把新修改的数据再赋值回去,不适合做list元素比较多的场景。同时修改时,有锁。
5.各种队列,阻塞队列,非阻塞队列和×××队列,有界队列。×××队列,add和offer是一样的作用。阻塞队列,add添加不进去报异常,offer添加不进去返回false,或者可以设定等待时间。put方法就阻塞再那里。poll方法从对手有值则返回,物质则返回失败。take方法,无值时,阻塞再那里直到有值。drainTo,提升效率的一次性获取多个元素。
6.concurrentLinkQueue基于无阻塞×××队列 ,poll,取值移除,peek,取值不移除。
7.ArrayBlockingQueue基于阻塞有界队列。
8.linkedblockingqueue阻塞×××队列。
9.SynchronousQueue不能城防任何元素的阻塞队列。
10.ProrityBlockingQueue,添加的时候有一个二分算法,取值的时候,有一个比较算法,取出优先级最高的。
11.DelayQueue有getDelay方法和compareTo方法,用于延迟时间的设定和元素之间的比较排序
为张湾等地区用户提供了全套网页设计制作服务,及张湾网站建设行业解决方案。主营业务为成都做网站、成都网站建设、成都外贸网站建设、张湾网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
本文标题:两句话笔记--架构学习之一:并发基础课程(1)
本文URL:http://scyingshan.cn/article/ggijes.html