View Full Version : [Java] synchronized
Salve, se definisco un metodo public synchronized method(), un thread che chiama tale metodo ha il lock sul solo metodo o sulla classe alla quale appartiene lo stesso metodo? Ovvero se il thread t chiama method, gli altri metodi della classe potranno essere eseguiti da altri thread mentre t è in esecuzione in method?
Spero di non dire grosse fesserie, ma quando un thread chiama method acquisisce il lock sull'intero oggetto (non sulla classe).
Comuqnue se fai un pò di ricerche potresti averlo spiegato meglio (dovrebbe essere liberamente scaricabile un capitolo dell'Horstman Cornell su java5).
Saluti
Spero di non dire grosse fesserie, ma quando un thread chiama method acquisisce il lock sull'intero oggetto (non sulla classe).
Comuqnue se fai un pò di ricerche potresti averlo spiegato meglio (dovrebbe essere liberamente scaricabile un capitolo dell'Horstman Cornell su java5).
Saluti
Hai ragione volevo dire oggetto, si effettivamente ho cercato un pò e ho visto che il lock è s tutto l'oggetto.
E aggiungo io che se un thread ha il lock sull'oggetto perché sta eseguendo un suo metodo synchronized, altri thread non possono eseguire alcun metodo synchronized su quell'oggetto ma possono però eseguire gli altri eventuali metodi non synchronized dell'oggetto.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.