
JUC多线程
文章平均质量分 87
渣娃-小晴晴
渣娃.晴
展开
-
Java的锁机制
以多线程下的线程安全问题为起点,分析多线程下为什么需要加锁,介绍了Java的锁机制,以及CAS算法及其带来的ABA问题。原创 2023-03-02 17:19:52 · 691 阅读 · 0 评论 -
volatile和synchronized详解
volatile和synchronized详解一、JMM简介二、volatile关键字三、synchronized关键字四、volatile和synchronized的区别:五、实际应用·多线程下的单例模式:一、JMM简介建议先了解一下,JMM(Java内存模型)具体内容如下(下面是一张图片,详情请点击上面链接):二、volatile关键字关于volatile关键字的内容,请查看往期文章:volatile关键字详解具体内容如下(下面是一张图片,详情请点击上面链接):三、synchroniz原创 2022-04-13 01:44:15 · 7898 阅读 · 9 评论 -
synchronized关键字详解
内容包括:synchronized的锁类型、实际应用、实现原理、锁升级过程和锁优化等原创 2022-04-13 01:24:11 · 4627 阅读 · 0 评论 -
volatile关键字详解
volatile关键字1.volatile简介:2.三大特性1>.保证可见性:代码验证:2>.保证有序性(禁止指令重排序)有序性的实现原理:3>.不保证原子性:解决方式:1.volatile简介:volatile 是 JVM 提供的轻量级的同步机制。volatile 关键字可以保证并发编程三大特征(原子性、可见性、有序性)中的可见性和有序性,不能保证原子性。2.三大特性1>.保证可见性:加了volatile关键字修饰的变量,只要有一个线程将主内存中的变量值做了修改,其他线程原创 2022-04-13 01:21:13 · 13534 阅读 · 4 评论 -
volatile和synchronized的区别
volatile和synchronized的区别应用范围:是否保证原子性:使用场景:保证有序性的方式:性能方面:应用范围:volatile关键字是对变量进行上锁,锁住的是单个变量,而synchronized还能对方法以及代码块进行上锁。是否保证原子性:在多线程环境下,volatile可以保证可见性和有序性,不能保证原子性,而synchronized在保证可见性和有序性的基础上,还可以保证原子性。volatile变量的原子性与synchronized的原子性是不同的。synchronized的原子性原创 2022-04-13 01:15:37 · 1295 阅读 · 1 评论 -
JMM(Java内存模型)详解
1.什么是JMM? JMM 是Java内存模型( Java Memory Model),简称JMM。它本身只是一个抽象的概念,并不真实存在,它描述的是一种规则或规范。通过这组规范,定义了程序中对各个变量(包括实例字段,静态字段和构成数组对象的元素)的访问方式。 计算机在执行程序时,每条指令都是在CPU中执行的。而执行指令的过程中,势必涉及到数据的读取和写入。由于程序运行过程中的临时数据是存放在主存(物理内存)当中的,这时就存在一个问题,由于CPU执行速度很快,而从内存读取数据和向内存写入数据的过原创 2022-04-13 01:02:37 · 37766 阅读 · 3 评论