文章目录 一.前言 了解高并发必须知道的概念 了解锁的概念 什么互斥和同步 什么是互斥量 线程安全三大特性 二.为什么要用锁? 三.什么是内置锁 四.synchronized使用 1.线程安全问题产生 2.初识Synchronized 3.错误使用Synchronized的案例 3.1.案例1 3.2.案例2 3.3.案例3 3.4.小结 五.Jvm对synchronized的优化 1.Java对象内存结构 2.JDK1.6中JVM对Synchronized的优化 2.1.锁消除(Lock Elimination) 2.2.锁粗化(Lock Coarsening) 2.3.适应性自旋锁(Adaptive Spinning) 2.4.简述偏向锁 2.5.简述轻量级锁 2.6.简述重量级锁 3.锁升级 3.1.什么是锁升级 3.2.锁升级的四种锁状态的思路及特点 1.无锁状态 2.偏向锁状态 3.轻量级锁状态 4.重量级锁状态 4.加锁和解锁的过程 4.1.加锁的过程 4.2.解锁的过程 5.锁的优缺点 6.总结 一.前言 并发编程最佳学习路线 【Java基础】多线程从入门到掌握 【Java多线程】线程通信 了解高并发必须知道的概念 【Java多线程】高并发修炼基础之高并发必须了解的概念 了解锁的概念 【Java多线程】成神之路中必须要了解的锁分类 什么互斥和同步 互斥是指某一资源同一时间只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法控制对资源的访问顺序 同步是指在互斥的基础上实现对资源的有序访问,即:也是不可以同时访问,并且还需要按照某种顺序来