1. synchronized锁(悲观锁、同步锁)
-
synchronized关键字:表示“同步”的。它可以对“多行代码”进行“同步”——将多行代码当成是一个完整的整体,一个线程如果进入到这个代码块中,会全部执行完毕,执行结束后,其它线程才会执行。这样可以保证这多行的代码作为完整的整体,被一个线程完整的执行完毕。
-
synchronized被称为“重量级的锁”方式,也是“悲观锁”——效率比较低。
1.1synchronized有几种使用方式:
- a).同步代码块【常用】
- b).同步方法【常用】
a**.同步代码块:**
格式:
synchronized(锁对象){}
锁对象:
1.语法上,可以是任意类的对象
2.如果多条线程想要实现同步,那么这多条线程的锁对象必须一致
b.同步方法:
格式:
修饰符 synchronized 返回值类型 方法名(形参列表){ }
锁对象:
非静态同步方法: 锁对象this
静态同步方法:该方法所在类的字节码对象(类名.class)
2.Lock锁
Lock锁也称同步锁&#