温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

两句话笔记--架构学习之一:并发基础课程(1)

发布时间:2020-08-02 04:27:02 来源:网络 阅读:449 作者:齐曼语 栏目:软件技术

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方法,用于延迟时间的设定和元素之间的比较排序

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI