Всегда ли применима аннотация @GuardedBy, когда есть синхронизированный блок

Справедливо ли предположить, что если в классе есть синхронизированный блок, всегда лучше иметь @GuardedBy в этом классе.

В частности, будет ли случай, когда у нас есть синхронизированный блок в java-файле, но мы не можем использовать аннотацию @GuardedBy в этом классе для любого поля или метода?


person Bajji    schedule 01.02.2016    source источник


Ответы (1)


Если аннотация @GuardedBy ссылается на какую-либо из реализаций Lock, таких как ReentrantLock, ReentrantReadWriteLock.ReadLock, ReentrantReadWriteLock.WriteLock, то ожидается, что для блокировки будет использоваться соответствующая блокировка вместо блокировки синхронизированным блоком.

person Abhiroop Sarkar    schedule 01.02.2016