@GuardedBy annotations on instance fields or methods
in which the guard is a static field. Guarding a non-static by a static may result in excessive lock contention,
as access to each locked field in any object instance will prevent simultaneous access to that field in every object instance.
Example:
private static ReadWriteLock lock = new ReentrantReadWriteLock(); //static guarding field
private Object state;
@GuardedBy("lock")
public void bar() {
state = new Object();
}
Supported @GuardedBy annotations are:
net.jcip.annotations.GuardedByjavax.annotation.concurrent.GuardedByorg.apache.http.annotation.GuardedBycom.android.annotations.concurrency.GuardedByandroidx.annotation.GuardedBycom.google.errorprone.annotations.concurrent.GuardedBy