CAS底层原理

CAS底层原理 概念 CAS的全称是Compare-And-Swap,它是CPU并发原语 它的功能是判断内存某个位置的值是否为预期值,如果是则更改为新的值,这个过程是原子的
阅读全文

Volatile的应用

Volatile的应用 单例模式DCL代码 首先回顾一下,单线程下的单例模式代码 /** * SingletonDemo(单例模式) * * @author: 陌溪 * @create: 2020-03-10-16:40 */ public class SingletonDemo
阅读全文

Volatile禁止指令重排

Volatile禁止指令重排 计算机在执行程序时,为了提高性能,编译器和处理器常常会对指令重排,一般分为以下三种: 源代码 -> 编译器优化的重排 -> 指令并行的重排
阅读全文

Volatile不保证原子性

Volatile不保证原子性 前言 通过前面对JMM的介绍,我们知道,各个线程对主内存中共享变量的操作都是各个线程各自拷贝到自己的工作内存进行操作后在写回到主内存中的。
阅读全文

1_Volatile和JMM内存模型的可见性

JUC(java.util.concurrent) 进程和线程 进程:后台运行的程序(我们打开的一个软件,就是进程) 线程:轻量级的进程,并且一个进程包含多个线程(同在一个软件内,同时运行窗口,就是线程)
阅读全文

乐观锁和悲观锁

乐观锁和悲观锁 乐观锁 概念 乐观锁:顾名思义,就是十分乐观,它总是认为不会出现问题,无论干什么都不去上锁~,如果出现了问题,再次更新值测试,这里使用了version字段。
阅读全文

Github学习

Github学习 使用Github优秀框架 + 源码 提升自己 常用词含义 watch:会持续收到该项目的动态 fork:复制某个仓库到自己的Github仓库中 star:可以理解为点赞 clone:将项目下载至本地
阅读全文

Linux诊断原因

Linux诊断原因 命令集合 整机:top,查看整机系统新能 使用top命令的话,重点关注的是 %CPU、%MEM 、load average 三个指标 load average三个指标:分别代表1、5、15分钟的负载情况
阅读全文

垃圾收集器

垃圾收集器 GC垃圾回收算法和垃圾收集器关系 天上飞的理念,要有落地的实现(垃圾收集器就是GC垃圾回收算法的实现) GC算法是内存回收的方法论,垃圾收集器就是算法的落地实现
阅读全文

Java内存溢出OOM

Java内存溢出OOM 经典错误 JVM中常见的两个错误 StackoverFlowError :栈溢出 OutofMemoryError: java heap space:堆溢出 除此之外,还有以下的错误 java.lang.StackOverflowError
阅读全文