1 释放锁 释放锁的触发时机就是我们常用的Lock.unlock()方法,目的就是让线程释放对资源的访问权。释放锁也是分为两类,一类是排它锁的释...
AbstractQueuedSynchronizer 中文翻译叫做同步器,简称 AQS,是各种各样锁的基础,比如说 ReentrantLock、...
耐心和恒心总会得到报酬的。 1 整体架构 我们从类注释上可以得到一些有用的信息: 1.1 类注释 有界的阻塞数组,容量一旦创建,后续大小无法修改...
如果不想在世界上虚度一生,那就要学习一辈子。 1 整体设计 DelayQueue 延迟队列底层使用的是锁的能力,比如说要在当前时间往后延迟5秒执...
1 整体架构 SynchronousQueue 的整体设计比较抽象,在内部抽象出了两种算法实现,一种是先入先出的队列,一种是后入先出的堆栈,两种...
从不浪费时间的人,没有工夫抱怨时间不够。 1 整体架构 LinkedBlockingQueue 中文叫做链表阻塞队列,这个命名很好,从命名上就直...
在 ArrayList 的类注释上,JDK 就提醒了我们,如果要把 ArrayList 作为共享变量的话,是线程不安全的,推荐我们自己加锁或者使...
1 HashSet 1.1 类注释 看源码先看类注释上,我们可以得到的信息有: 底层实现基于HashMap,所以迭代时不能保证按照插入顺序,或者...
1 知识储备 在了解 TreeMap 之前,我们来看下日常工作中排序的两种方式,作为我们学习的基础储备,两种方式的代码如下: 第一种排序输出的结...
文集作者