文章目录
一、线程安全
二、锁机制 ( 类锁 | 对象锁 )
三、锁分类 ( 轻量级锁 | 重量级锁 )
一、线程安全
----
多个线程同时访问 同一个共享变量 时 , 只要能保证 数据一致性 , 那么该变量是线程安全的...就是线程安全 ;
线程安全 就是保证 线程操作的 原子性 , 可见性 , 有序性 ;
volatile 关键字可以保证 可见性 与 有序性 ;
synchronized 关键字可以保证 原子性 ;
二、锁机制...( 类锁 | 对象锁 )
----
synchronized 是 Java 提供的一种锁机制 ;
在普通方法上加锁 , 相当于对 this 进行加锁 ; 下面两个类的 fun 方法的线程锁是等效的 ;...( 轻量级锁 | 重量级锁 )
----
如果线程 A 获得锁之后 , 执行线程内容 , 其它线程等待解锁时有两种情况 :
轻量级锁 : 又称为 自旋锁 , 线程 盲等待 或 自旋等待 , 即 while...一旦涉及到操作系统 , 量级就变重 , 效率变低 ; ( 重量级 )
轻量级锁弊端 : 轻量级锁 不一定 比重量级锁 更好 ; 轻量级锁 等待过程中 , 高速执行循环代码 , 如果循环的时间很短 ,