![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发
two_robots
记录成长,分享喜悦
展开
-
CAS无锁算法与ConcurrentLinkedQueue
CAS:Compare and Swap 比较并交换java.util.concurrent包完全建立在CAS之上的,没有CAS就没有并发包。并发包借助了CAS无锁算法实现了区别于synchronized同步锁的乐观锁。因为对于CAS算法来说,就是在不加锁的前提下而假设没有冲突去完成某个操作,如果因为冲突而导致操作失败,那么就进行重试,直到成功为止。CAS有三个操作数:真实的内存值V、预期转载 2018-01-04 17:09:40 · 244 阅读 · 0 评论 -
并发队列ConcurrentLinkedQueue、阻塞队列AraayBlockingQueue、阻塞队列LinkedBlockingQueue 区别 和 使用场景总结
三者区别与联系: 联系,三者 都是线程安全的。区别,就是 并发 和 阻塞,前者为并发队列,因为采用cas算法,所以能够高并发的处理;后2者采用锁机制,所以是阻塞的。注意点就是前者由于采用cas算法,虽然能高并发,但cas的特点造成操作的危险性,怎么危险性可以去查一下cas算法(但一些多消费性的队列还是用的它,原因看下边使用场景中的说明) 后2者区别:联系,第2和第3都是阻塞队转载 2018-01-04 22:50:01 · 163 阅读 · 0 评论 -
关于线程----使用、状态
1、线程的创建方式:(1)new Thread():override run方法(2)implement Runnable:实现run方法两者的区别,Runnable更灵活。2、线程的状态:线程在一定条件下,状态会发生变化。线程一共有以下几种状态:1、新建状态(New):新创建了一个线程对象。2、就绪状态(Runnable):线程对象创建后,其他线程调用原创 2018-01-05 10:50:50 · 131 阅读 · 0 评论 -
死锁的理解---产生条件、避免方法、死锁解除
死锁:指多个进程因竞争共享资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再 向前推进。安全状态与不安全状态:安全状态指系统能按某种进程顺序来为每个进程分配其所需资源,直 至最大需求,使每个进程都可顺利完成。若系统不存在这样一个序列, 则称系统处于不安全状态。 产生死锁的原因:(1)竞争系统资源 (2)进程的推进顺序不当产生死锁的必要条件:互转载 2018-01-05 10:55:45 · 424 阅读 · 0 评论 -
java 线程方法join的简单总结
一、作用 Thread类中的join方法的主要作用就是同步,它可以使得线程之间的并行执行变为串行执行。具体看代码:public class JoinTest { public static void main(String [] args) throws InterruptedException { ThreadJoinTest t1 = new ThreadJoinT...转载 2018-04-09 10:05:23 · 154 阅读 · 0 评论