单例模式是一种对象创建型模式,使用单例模式,可以保证为一个类只生成唯一的实例对象。也就是说,在整个程序空间中,该类只存在一个实例对象。在并发编程中单例模式是否能真的能只创建一个对象呢?如何保障对象的唯一性?通过举例分析一下。一、饿汉式pub...
一、什么是CAS1.1、说明CAS的全称为:Compare And Swap,直译就是比较交换。是一条CPU的原子指令,其作用是让CPU先进行比较两个值是否相等,然后原子地更新某个位置的值,其实现方式是基于硬件平台的汇编指令,在intel的...
一,AQS简介AQS的全称为(Abstract Queued Synchronizer),这个类是在java.util.concurrent.locks下面。AQS中文为队列同步器,是用来构建锁或者其他同步组件的基础框架。它提供了一个FIF...
多线程编程中,有可能会出现多个线程同时访问同一个共享、可变资源的情况,这个资源我们称之其为临界资源;这种资源可能是:对象、变量、文件等。共享:资源可以由多个线程同时访问。可变:资源可以在其生命周期内被修改。由于线程执行的过程是不可控的,所以...
一、线程与进程1.1、进程(Process) 是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。 在当代面向线程设计的计算机结构中,进程是线程的容...
一、认识volatile关键字通过一段代码认识volatile关键字。public class VolatileDemo01 { final st...
一、JMM模型Java内存模型(Java Memory Model,简称JMM)是一种抽象的概念,并不真实存在,它描述的是一组规则或规范。通过这组规范定义了程序中各个变量(包括实例字段,静态字段和构成数组对象的元素)的访问方式。JVM运行程...
一、G1收集器(-XX:+UseG1GC)G1 (Garbage-First)是一款面向服务器的垃圾收集器,主要针对配备多颗处理器及大容量内存的机器。以极高概率满足GC停顿时间要求的同时,还具备高吞吐量性能特征。G1将Java堆划分为多个大...
一、Serial收集器(-XX:+UseSerialGC(年轻代) -XX:+UseSerialOldGC(老年代))Serial(串行)收集器是最基本、历史最悠久的垃圾收集器了。是一个单线程收集器它的 “单线程” 的意义不仅仅意...
一、分代收集理论当前虚拟机的垃圾收集都采用分代收集算法,这种算法没有什么新的思想,只是根据对象存活周期的不同将内存分为几块。一般将java堆分为年轻代和老年代,这样我们就可以根据各个年代的特点选择合适的垃圾收集算法。年轻代,每次收集都会有大...