![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发编程
湖职吴彦祖
大家一起加油
展开
-
阻塞队列——LinkedBlockingQueue
回顾上一篇中,我们讲述了基于数组实现的ArrayBlockingQueue,这一篇我们将学习另一种基于链表实现的LinkedBlockingQueue。 首先看看LinkedBlockingQueue一些重要属性 public class LinkedBlockingQueue<E> extends AbstractQueue<E> implement...原创 2019-12-05 16:53:25 · 125 阅读 · 0 评论 -
阻塞队列——ArrayBlockingQueue
ArrayBlockingQueue简介 ArrayBlockingQueue是一个基于数组实现的有界阻塞队列。通过一个lock锁,来控制插入和删除元素操作,从而达到线程安全。 public class ArrayBlockingQueue<E> extends AbstractQueue<E> implements BlockingQueue<...原创 2019-11-28 14:53:30 · 152 阅读 · 0 评论 -
Java并发编程——(二)
1.三个同步原语:synchronized、volatile、final 2.并发编程的两个需要解决的问题: *1.线程之间的通信。书中给的定义:线程之间以何种机制来交换信息 。 个人理解:说白了,就是一个共享变量,被多个线程 操作,相互之间能够知道。这也就是内存可见性。 *2.线程之间如何同步。控制线程间操作共享变量的顺序。 2.并发编程的两个...原创 2019-11-21 20:33:59 · 110 阅读 · 0 评论 -
AQS详解
欢迎大家关注公众号——秃头让我们变强 AQS简介 编程不识Doug Lea,写尽Java也枉然。JUC包的作者,大名鼎鼎的Doug Lea,在JUC包中为我们留下了一个AbstranctQueuedSynchronizer类。希望它能满足一切并发编程开发者的同步需求。JUC包中的锁也基本都是基于AQS来实现的。AQS提供了一个volatile类型变量作为获取资源成功的标志,内部维护着一个FIF...原创 2019-11-21 20:29:26 · 247 阅读 · 0 评论 -
Java并发编程——(一)
此文章为自己看书的后一些笔记,不具备学习价值,只能作为参考。如有异议,欢迎讨论,一起学习进步。 1.导致多线程并发数据不安全的原因: *1.线程操作一个共享变量,是在本地内存中。本地内存是每个线程私有的,多个线程之间不可见 *2.代码实际执行时,会经过编译器和处理器的指令重排序。由于编译器和处理器只会遵守单线程的数据依赖,对多线程或多个处理之间,是不遵守...原创 2019-11-21 20:33:37 · 75 阅读 · 0 评论