static
字段的实例字段或方法上的 @GuardedBy
注解。 用 static 来保护非 static 可能会导致过度的锁争用,因为访问任何对象实例中的每个锁定字段均将阻止同时访问每个对象实例中的字段。
示例:
private static ReadWriteLock lock = new ReentrantReadWriteLock(); //static 保护字段
private Object state;
@GuardedBy("lock")
public void bar() {
state = new Object();
}
支持的 @GuardedBy
注解是:
net.jcip.annotations.GuardedBy
javax.annotation.concurrent.GuardedBy
org.apache.http.annotation.GuardedBy
com.android.annotations.concurrency.GuardedBy
androidx.annotation.GuardedBy
com.google.errorprone.annotations.concurrent.GuardedBy