this
的 static
字段或方法上的 @GuardedBy
注解。
使用非 static 元素保护 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