- 博客(7)
- 收藏
- 关注
原创 PriorityBlockingQueue
1.PriorityQueue1.1二叉堆用数组实现的二叉树堆总是一棵完全二叉树。最大堆:父结点的键值总是大于或等于任何一个子节点的键值;最小堆:父结点的键值总是小于或等于任何一个子节点的键值。1.2PriorityQueue一个基于优先级的无界优先级队列。优先级队列的元素按照其自然顺序进行排序,或者根据构造队列时提供的 Comparator 进行排序。插入队列的对...
2019-07-18 16:53:10 267
原创 LinkedBlockingQueue
1.LinkedListpublic class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable//维护一个节点,这个节点包含本身的值,上一节点和下一个...
2019-07-11 09:10:25 309
原创 AQS--CountDownLatch(待整理)
一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。用给定的计数 初始化 CountDownLatch。由于调用了 countDown() 方法,所以在当前计数到达零之前,await 方法会一直受阻塞。public class CountDouwnLatchTest { // 模拟了100米赛跑,10名选手已经准备就绪,只等裁判一声令下。当所有人...
2019-07-08 21:24:46 251 1
原创 AQS--条件队列(待整理)
//条件队列属性: 只有两个属性 firstWaiter 和 lastWaiter; public class ConditionObject implements Condition, java.io.Serializable { private static final long serialVersionUID = 1173984872572414699L; ...
2019-07-08 21:24:29 371
原创 AQS—阻塞队列(待整理)
阻塞队列不包含 head,头结点也不包含线程Sync 有两个实现,分别为 NonfairSync(非公平锁)和 FairSync(公平锁)。 public static ReentrantLock reenT = new ReentrantLock();//参数默认false,不公平锁 private static ReentrantLock lock = ne...
2019-07-08 21:24:14 1201
原创 AQS--基础(待整理)
AQS 是实现 ReentrantLock、CountDownLatch、Semaphore、FutureTask 等类的基础。AQS属性//头结点 当前持有锁的线程 private transient volatile Node head;// 阻塞的尾节点,每个新的节点进来,都插入到最后,也就形成了一个链表private transient volatile Node tai...
2019-07-08 21:23:51 328
原创 ArrayBlockingQueue
1.ArrayListArrayList是基于数组实现的List类,完全支持List接口的全部功能,底层实质上就是一个Object[]数组,是一个动态数组,可以实现容量的动态增长。ArrayList不是线程安全的。1.扩容,逻辑为newCapacity = oldCapacity + (oldCapacity >> 1),即在原有的容量基础上增加一半。容量为minCapacit...
2019-07-06 11:08:00 283
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人