Какая польза от создания класса "Lock" (который расширяет Object и ничего не делает)?

Привет всем, когда я использую оператор synchronized, я часто использую этот паттерн:

private static Object lock = new Object();

public void F(){
    //..
    synchronized (lock){
        //..
    }
    //..
}

Однако, в исходниках java.lang.Reference, я вижу, что они используют этот паттерн вместо этого:

static private class Lock { };
private static Lock lock = new Lock();

public void run() {
//..
synchronized(lock){
    //..
}
//..
}

Я хотел спросить, в чем преимущество объявления нового класса Lock (который в основном расширяет Object и больше ничего не делает)?

Или, скорее, почему они просто не использовали private static Lock lock = new Object(); ?

7
задан Pacerier 5 December 2011 в 16:49
поделиться