文章目录
一、线程安全
二、锁机制 ( 类锁 | 对象锁 )
三、锁分类 ( 轻量级锁 | 重量级锁 )
一、线程安全
----
多个线程同时访问 同一个共享变量 时 , 只要能保证 数据一致性 , 那么该变量是线程安全的...( 类锁 | 对象锁 )
----
synchronized 是 Java 提供的一种锁机制 ;
在普通方法上加锁 , 相当于对 this 进行加锁 ; 下面两个类的 fun 方法的线程锁是等效的 ;...: synchronized() 代码块中 , 括号中的参数是 作用范围 ; synchronized(this) 表示作用范围只针对当前对象 , 如果 创建了多个对象 , 这几个对象中的锁都是 不同的锁...如 :
线程 A 访问 s1 对象的 fun 方法 , 线程 B 访问 s2 对象的 fun 方法 , 两个方法之间 没有互斥效果 ;
线程 A 访问 s1 对象的 fun 方法 , 线程 B 也想访问...s1 对象的 fun 方法 , 此时必须 等待线程 A 访问完毕 , 释放锁之后 , 才能由线程 B 访问 s1 ;
类锁 : 如果加锁的对象是静态方法 , 那么相当于在 Student.class