互斥锁
基本介绍
- java在java语言中,引入了对象互斥锁的概念,来保证共享数据操作的完整性
- 每个对象都对应一个可称为“互斥锁”的标记,这个标记用来保证在任一时刻,只能有一个线程访问该对象。
- 关键字synchronize与对象的互斥锁联系。当某个对象用synchronize修饰时,表明该对象在任一时刻只能用一个线程访问
- 同步的局限性:导致程序的执行效率要降低
- 同步的方法(非静态的)的锁可以是this,也可以是其他对象(要求是同一对象)
- 同步方法(静态的)的锁为当前类本身
注意事项
- 同步方法如果没有使用static修饰:默认锁对象为this
- 如果方法使用static修饰,默认锁对象:当前类.class
- 实现的落地步骤:需要分析上锁的代码,选择同步代码块或同步方法,要求多个线程的锁对象为同一个即可