this
的 static
字段或方法的 @GuardedBy
注解。
用非 static 元素保护静态元素可能会导致过度并发,多个线程可能在不同的对象上下文中锁定,来同时访问保护字段。
示例:
private ReadWriteLock lock = new ReentrantReadWriteLock();
@GuardedBy("lock")
public static void bar() {
// ...
}
支持的 @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