如果用 this 作为锁,是所有同一个的类的对象多用类这个同一把锁么?如果不是,这个类的每个线程对象都用自己(this)自己作为锁,那么线程之间并没有去竞争同一把锁。所以我的推断是:如果用 this 作为锁,所有同一个的类的对象多用类这个同一把锁。
如果用 this 作为锁,是所有同一个的类的对象多用类这个同一把锁么?如果不是,这个类的每个线程对象都用自己(this)自己作为锁,那么线程之间并没有去竞争同一把锁。所以我的推断是:如果用 this 作为锁,所有同一个的类的对象多用类这个同一把锁。
这位兄弟,你读一下你的描述看能读得通不
然后 this 做锁表示用类的对象做锁,不同的对象是不同的锁,锁不住的,
但如果是在 spring component 中使用,因为 component 默认是单例的,只会有一个对象,所以加锁是成功的,
但还有一种情况,如果是在事务中使用,因为锁代码块未包含整个事务提交的代码,所以锁会失效
15 回答8.2k 阅读
8 回答6k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.2k 阅读
2 回答3.9k 阅读
1 回答2.2k 阅读✓ 已解决
例子1
例子2
例子3