1. 自旋锁与自适应自旋 为了让线程等待,我们只须让线程执行一个忙循环(自旋)。自旋等待不能代替阻塞,如果锁被占用的时间很短,自旋等待的效果就会非常好,反之如果锁被占用的时间...
1. 自旋锁与自适应自旋 为了让线程等待,我们只须让线程执行一个忙循环(自旋)。自旋等待不能代替阻塞,如果锁被占用的时间很短,自旋等待的效果就会非常好,反之如果锁被占用的时间...
1.互斥同步(synchronized,ReentrantLock) synchronized:是一种块结构的同步语法,synchronized关键字经过Javac编译之后,...
主内存与工作内存 Java内存模型规定了所有的变量都存储在主内存中。每条线程还有自己的工作内存,线程的工作内存中保存了被该线程使用的变量的主内存副本,线程对变量的所有操作(读...
静态分派(重载) 对于 Human man = new Man();,Human称为变量的静态类型,Man称为变量的实际类型。所有依赖静态类型来决定方法执行版本的分派动作,都...
Serial/Serial Old收集器 新生代使用标记-复制算法,老年代使用标记-整理算法。 是一个单线程工作的收集器,但它的“单线程”的意义并不仅仅是说明它只会使用一个处...
分代收集理论 弱分代假说:绝大多数对象都是朝生夕灭的。 强分代假说:熬过越多次垃圾收集过程的对象就越难以消亡。 跨代引用假说:跨代引用相对于同代引用来说仅占极少数。 针对不同...
引用计数算法 在对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加一;当引用失效时,计数器值就减一;任何时刻计数器为零的对象就是不可能再被使用的。 优点:原理简单...
对象的创建 1.当java虚拟机遇到一条字节码new指令时,首先检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始...
程序计数器 程序计数器(Program Counter Register)是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。在Java虚拟机的概念模型里,...
集群 一个集群可以有一个或者多个节点,节点是一个elasticsearch实例,本质上是一个java进程。 节点 Master-eligible Node & Master ...
1.类加载的时机 一个类型从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期将会经历加载(Loading)、验证(Verification)、准备(Prepara...
此文分析AQS的最后部分,CountDownLatch、CyclicBarrier、Semaphore。 CountDownLatch CountDownLatch是AQS共...
此篇文章分析AbstractQueuedSynchronizer(AQS)类里的ConditionObject。 Condition 首先要明白Condition的应用场景,...
本人由于考研所以很久没有系统的看过java。现在准备重新系统的将java(jdk12)并发包 java.util.concurrent 源码重新简单梳理一遍,借用简书给记录下...