HashMap为什么使用红黑叔而不是其他数据结构

众所周知,JDK1.8 及之后版本 HashMap 使用数组+链表+红黑树的数据结构,那么为什么引入了红黑树呢?为什么使用红黑树而不是其他的数据结构呢?

Java

CAS

什么是CASCAS 的全称为 Compare-And-Swap,直译就是对比交换。是一条 CPU 的原子指令,其作用是让 CPU 先进行比较两个值是否相等,然后原子地更新某个位置的值,经过调查发现,其实现方式是基于硬件平台的汇编指令,就是说 CAS 是靠硬件实现的,JVM 只是封装了汇编调用,那些 AtomicInteger 类便是使用了这些封装后的接口。 简单解释:CAS 操作需要输入两...

FutureTask

Future 表示了一个任务的生命周期,是一个可取消的异步运算,可以把它看作是一个异步操作的结果的占位符,它将在未来的某个时刻完成,并提供对其结果的访问。在并发包中许多异步任务类都继承自Future,其中最典型的就是 FutureTask。

线程池 ThreadPoolExecutor 详解

关于 ThreadPoolExecutor 的讲解

synchronized

在 C 程序代码中我们可以利用操作系统提供的互斥锁来实现同步块的互斥访问及线程的阻塞及唤醒等工作。在 Java 中除了提供 Lock API 外还在语法层面上提供了 synchronized 关键字来实现互斥同步原语, 本文将对 synchronized 关键字详细分析。

volatile

讲述了关于 volatile 的作用及实现原理的个人理解

Happens-Before规则

结合示例讲述类 Happens-Before 的八个规则





博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议

载入天数...载入时分秒... 本站使用 Volantis 作为主题 鲁ICP备-20012065号