文章目录
一、线程安全
二、锁机制 ( 类锁 | 对象锁 )
三、锁分类 ( 轻量级锁 | 重量级锁 )
一、线程安全
----
多个线程同时访问 同一个共享变量 时 , 只要能保证 数据一致性 , 那么该变量是线程安全的...可见性 与 有序性 ;
synchronized 关键字可以保证 原子性 ;
二、锁机制 ( 类锁 | 对象锁 )
----
synchronized 是 Java 提供的一种锁机制 ;
在普通方法上加锁...( 轻量级锁 | 重量级锁 )
----
如果线程 A 获得锁之后 , 执行线程内容 , 其它线程等待解锁时有两种情况 :
轻量级锁 : 又称为 自旋锁 , 线程 盲等待 或 自旋等待 , 即 while...循环 , 没有进入阻塞状态 , 没有进入等待队列中排队 ; ( 轻量级 )
重量级锁 : 线程进入 等待队列 , 排队等待线程 A 执行完毕 ; 在该队列的线程 , 需要 等待 OS 进行线程调度 ,..., 等待时间过长 , 会造成 CPU 大量浪费 ;
重量级锁 : 重量级锁等待过程中 , 线程处于阻塞状态 , 效率可能低一些 , 但是不会造成资源浪费 , 如果 线程很多 , 或 等待时间很长 ,