Я встретил код как несколько раз
class Foo {
private Object lock = new Object();
public void doSomething() {
synchronized(lock) {
...
Что меня интересует, почему создается объект блокировки вместо записи synchronized(this)
? Нужно ли разрешать совместное использование блокировки? Я смутно помню, что читал, что это оптимизация. Это правда? Кроме того, имеет ли смысл в некотором контексте иметь блокировку, объявленную как final
?