Occhio a una cosa: un lock è acquisito dal thread che è entrato in un metodo/blocco synchronized. Quindi tu vuoi verificare se è acquisito da chi??Originariamente inviato da Hysoka
non c'è qualcosa che in pseudo codice divenda:
IF is Not Locked(myList) THEN
...
ELSE YIELD
Esiste il metodo public static boolean holdsLock(Object obj) di Thread (solo da Java 1.4) ma testa solo se il thread corrente ha acquisito il lock su quell'oggetto. E questo metodo lo si usa tipicamente per questioni di testing con le asserzioni, non per fare quello che pensavi.
Comunque, molto probabilmente, l'uso di un lock intrinseco non è la cosa migliore da usare per quello che forse pensavi di fare. Ma non posso dire di più perché non ho ben chiaro cosa vuoi fare e perché.

Rispondi quotando