Ciao a tutti... è possibile sincronizzare (synchronized) una intera classe? se si come si fa?
Ciao e grazie
Ciao a tutti... è possibile sincronizzare (synchronized) una intera classe? se si come si fa?
Ciao e grazie
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
quindi se io volessi bloccare i metodi in lettura di una classe fino a che la scrittura non finisce come potrei fare?
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
scusa sono tonto...
così blocco tutti i metodi o solo quello che sto usando?
In poche parole su un'oggetto puoi chiamare solo un metodo synchronized alla volta
ok, spero di aver capito...
Ciao e grazie