Я где-то читал, что synchronized(this)
следует избегать для различных причин. Однако какой-то респектабельный код, с которым я столкнулся, использует в конструкторе следующее:
public SomeClass(Context context) {
if (double_checked_lock == null) {
synchronized (SomeClass.class) {
if (double_checked_lock == null) {
// some code here
}
}
}
}
Есть ли разница между synchronized(this)
и synchronized(SomeClass.class)
?