Visualizzazione dei risultati da 1 a 4 su 4

Discussione: synchronized

  1. #1

    synchronized

    Ciao a tutti,
    ho un dubbio: devo sincronizzare tra di loro due pezzi diversi di codice eseguiti in 2 classi differenti, come faccio?

    Pensavo di sincronizzarli su un oggetto che vedono entrambe, magari static.

    Tipo:

    codice:
    Class A{
           static Object lock = new Object();
    
           public void myMetod(){
    
                //some code
    
                synchronized(lock){
                     //sychronized code;
                }
    
           }
    }
    
    
    Class B{
          public void anotherMethod(){
              //some code
    
                synchronized(A.lock){
                     //sychronized code;
                }
            
          }
    }

    E' giusto?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: synchronized

    Originariamente inviato da VioletFairy
    Pensavo di sincronizzarli su un oggetto che vedono entrambe, magari static.

    E' giusto?
    Tecnicamente non fa una piega .... il lock è lo stesso, quindi corretto. Io ci aggiungerei alla variabile il marcatore "final". Come l'hai fatto il livello di accesso è package-level e se ti va bene ok.

    Ma perché devi fare una cosa del genere e quindi vedere se è appropriato/sensato o no .... bisognerebbe chiarire le motivazioni di fondo.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3

    Re: Re: synchronized

    Originariamente inviato da andbin
    ...
    Ma perché devi fare una cosa del genere e quindi vedere se è appropriato/sensato o no .... bisognerebbe chiarire le motivazioni di fondo.
    Concordo, quando si parla di sincronizzazione va sempre valutato il contesto di applicazione.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  4. #4
    Grazie della risposta tempestiva

    Cmq ho 2 thread di 2 diverse classi che vanno a leggere e scrivere una stessa variabile qundi mi serve synchronized per problemi di concorrenza, cioè oer evitare inconsistenze quando vado a leggere un dato.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.