
数据结构
文章平均质量分 91
two_robots
记录成长,分享喜悦
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
CAS无锁算法与ConcurrentLinkedQueue
CAS:Compare and Swap 比较并交换 java.util.concurrent包完全建立在CAS之上的,没有CAS就没有并发包。并发包借助了CAS无锁算法实现了区别于synchronized同步锁的乐观锁。因为对于CAS算法来说,就是在不加锁的前提下而假设没有冲突去完成某个操作,如果因为冲突而导致操作失败,那么就进行重试,直到成功为止。 CAS有三个操作数:真实的内存值V、预期转载 2018-01-04 17:09:40 · 302 阅读 · 0 评论 -
并发队列ConcurrentLinkedQueue、阻塞队列AraayBlockingQueue、阻塞队列LinkedBlockingQueue 区别 和 使用场景总结
三者区别与联系: 联系,三者 都是线程安全的。区别,就是 并发 和 阻塞,前者为并发队列,因为采用cas算法,所以能够高并发的处理;后2者采用锁机制,所以是阻塞的。注意点就是前者由于采用cas算法,虽然能高并发,但cas的特点造成操作的危险性,怎么危险性可以去查一下cas算法(但一些多消费性的队列还是用的它,原因看下边使用场景中的说明) 后2者区别:联系,第2和第3都是阻塞队转载 2018-01-04 22:50:01 · 198 阅读 · 0 评论 -
关于线程----使用、状态
1、线程的创建方式: (1)new Thread():override run方法 (2)implement Runnable:实现run方法 两者的区别,Runnable更灵活。 2、线程的状态: 线程在一定条件下,状态会发生变化。线程一共有以下几种状态: 1、新建状态(New):新创建了一个线程对象。 2、就绪状态(Runnable):线程对象创建后,其他线程调用原创 2018-01-05 10:50:50 · 178 阅读 · 0 评论 -
死锁的理解---产生条件、避免方法、死锁解除
死锁:指多个进程因竞争共享资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再 向前推进。 安全状态与不安全状态:安全状态指系统能按某种进程顺序来为每个进程分配其所需资源,直 至最大需求,使每个进程都可顺利完成。若系统不存在这样一个序列, 则称系统处于不安全状态。 产生死锁的原因:(1)竞争系统资源 (2)进程的推进顺序不当 产生死锁的必要条件: 互转载 2018-01-05 10:55:45 · 466 阅读 · 0 评论