Gdy członek Java musi być bezpieczny wątku, robimy tak:Jak działa funkcja synchronizacji statycznej?
public synchronized void func() {
...
}
tej składni odpowiadający:
public void func() {
synchronized(this) {
....
}
}
Oznacza to, że faktycznie korzysta this
za zamkiem.
Moje pytanie brzmi, czy mogę używać synchronized
z metodą static
, co następuje:
class AA {
private AA() {}
public static synchronized AA getInstance() {
static AA obj = new AA();
return obj;
}
}
W tym przypadku, na co jest blokada wykonana dla metody synchronized
?
Klasa AA zostaną zablokowane 'zsynchronizowane (AA.class)', ale żadne instancje –
nie jest statycznym deklaracja zmiennej lokalnej 'obj' błąd składni? – Thilo