在执行程序时,为了提高性能,编译器和处理器常常会对指令做重排序。重排序分3种类型: 编译器优化的重排序。编译器在不...[作者空间]
线程之间的通信和同步 线程之间的通信和同步是并发编程领域的关键问题。 线程之间的通信 通信是指线程之间以何种机制来...[作者空间]
懒汉式 加方法锁 直接在 getInstance() 方法加锁,但是加锁的范围太大,性能低下 双重检查锁定 对象需...[作者空间]
使用并发编程的目标是为了提升系统性能,引入多线程后,其实会引入额外的开销,如线程之间的协调、增加的上下文切换,线程...[作者空间]
在并发的情况下使用和调度一个类,这个类总是能表现出正确的行为,那么我们就说这个类是并发安全的类。 类线程安全的表现...[作者空间]
CompletionService的主要作用是:按照异步任务的完成顺序,逐个获取到已经完成的异步任务。主要实现是在...[作者空间]
CompletableFuture 是jdk1.8引入的一个新特性。 它主要是为了解决多个Future结果之间的依...[作者空间]
Future接口和实现Future接口的FutureTask类,代表异步计算的结果。FutureTask除了实现F...[作者空间]
Executor框架最核心的类是ThreadPoolExecutor,它是线程池的实现类,详情请看ThreadPo...[作者空间]
Fork/Join框架的入门可以参考Fork/Join框架。Fork/Join框架的核心类有两个一个是ForkJo...[作者空间]
Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序 都可以使用线程池。合理地使用线程...[作者空间]
写时复制的容器。通俗的理解是当我们往一个容器添加元素的时候,不直接往当前容器添加,而是先将当前容器进行Copy,复...[作者空间]
ConcurrentSkipListMap其实是TreeMap的并发版本。TreeMap使用的是红黑树,并且按照k...[作者空间]
在并发编程中,有时候需要使用线程安全的队列。如果要实现一个线程安全的队列有两 种方式:一种是使用阻塞算法,另一种是...[作者空间]
在并发编程中,有时候需要使用线程安全的队列。如果要实现一个线程安全的队列有两 种方式:一种是使用阻塞算法,另一种是...[作者空间]
HashMap是一个线程不安全的类,在并发情况下会产生很多问题,详情可以参考HashMap 源码解析;HashTa...[作者空间]
二叉树遍历算法有4种,先序、中序、后序和层序遍历 先序遍历:先根、后左、再右中序遍历:先左、后根、再右后序遍历:先...[作者空间]
红黑树(Red Black Tree) 是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实...[作者空间]
源码学习,边看源码边加注释,边debug,边理解。 基本属性 常量 DEFAULT_INITIAL_CAPACIT...[作者空间]
队列同步器AbstractQueuedSynchronizer(以下简称同步器),是用来构建锁或者其他同步组件的基...[作者空间]