非静态方法的锁是this,静态方法的锁是对应的class(如:String.class)
当线程A和线程B访问相同共享数据:
1、当线程A和线程B同属于非静态方法时,存在锁竞争问题
2、当线程A和线程B同属于静态方法时,存在锁竞争问题
3、当线程A属于非静态方法,线程B属于静态方法时,不存在锁竞争问题(当线程A和线程B访问不同的共享数据时,同样存在锁竞争)
非静态方法的锁是this,静态方法的锁是对应的class(如:String.class)
当线程A和线程B访问相同共享数据:
1、当线程A和线程B同属于非静态方法时,存在锁竞争问题
2、当线程A和线程B同属于静态方法时,存在锁竞争问题
3、当线程A属于非静态方法,线程B属于静态方法时,不存在锁竞争问题(当线程A和线程B访问不同的共享数据时,同样存在锁竞争)