Metodo di sincronizzazione vs oggetto finale privato per il blocco in java

-1

Qualcuno può dirmi quale è l'approccio migliore tra il metodo di sincronizzazione e l'oggetto finale privato in java e perché ??

public class kclass {

    private final Object myObject = new Object();

    public synchronized void show() {
       ...
    } 

    public void show1() {
        synchronized(myObject) {
            ...
        } 
    }
}
    
posta Susanta Das 22.11.2018 - 19:04
fonte

1 risposta

3

In generale entrambi gli approcci sono legittimi. L'utilizzo di un oggetto dedicato su synchronize su consente di eseguire una sincronizzazione più dettagliata rispetto all'utilizzo di synchronized a livello di metodo: è possibile sincronizzare solo parte di un metodo o utilizzare oggetti di blocco diversi per scopi di sincronizzazione diversi. I metodi synchronized (non statici) si sincronizzeranno implicitamente sull'oggetto su cui sono chiamati, in modo che tutto il loro corpo sia sincronizzato.

    
risposta data 23.11.2018 - 05:49
fonte

Leggi altre domande sui tag