Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [java] synchronized

  1. #1

    [java] synchronized

    Ciao a tutti... è possibile sincronizzare (synchronized) una intera classe? se si come si fa?
    Ciao e grazie

  2. #2
    Utente di HTML.it L'avatar di Fox82
    Registrato dal
    Feb 2002
    Messaggi
    459
    No, puoi usere synchronized solo sui metodi di una classe (se lo usi su tutti però puoi impedire che venga chiamato più di un metodo alla volta).

    Esiste un bloccaggio unico per i metodi static:

    synchronized static nomeMetodo()
    {}

    che permette ai metodi static di bloccarsi a vicenda

  3. #3
    quindi se io volessi bloccare i metodi in lettura di una classe fino a che la scrittura non finisce come potrei fare?

  4. #4
    Utente di HTML.it L'avatar di Fox82
    Registrato dal
    Feb 2002
    Messaggi
    459
    Basta che dichiari synchronized tutti i metodi di lettura e scrittura di quella classe:

    se un thread vuole chiamare un metodo, se c'è già un altro metodo synchronized in esecuzione dovrà aspettare che il metodo termini, altrimenti può accedere al metodo e bloccarlo

    Spero di essere stato chiaro

  5. #5
    scusa sono tonto...
    così blocco tutti i metodi o solo quello che sto usando?

  6. #6
    Utente di HTML.it L'avatar di Fox82
    Registrato dal
    Feb 2002
    Messaggi
    459
    In poche parole su un'oggetto puoi chiamare solo un metodo synchronized alla volta

  7. #7
    ok, spero di aver capito...
    Ciao e grazie

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 © 2024 vBulletin Solutions, Inc. All rights reserved.