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