首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >@GuardedBy java.util.concurrent.locks.ReadWriteLock注解

@GuardedBy java.util.concurrent.locks.ReadWriteLock注解
EN

Stack Overflow用户
提问于 2011-10-20 01:35:08
回答 2查看 35.4K关注 0票数 46

要注释受ReadWriteLock保护的字段,以便像FindBugs这样的工具能够利用该注释,哪种方法是正确的/首选的?是否应该在@GuardedBy注释中简单地写入ReadWriteLock的名称。有没有理由在@GuardedBy注释中只写读锁,或者只写写锁的名称?FindBugs或其他工具甚至支持@GuardedBy中的ReadWriteLock

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-13 07:30:43

在撰写本文时,@GuardedBy isn't fully implemented by Findbugs和主要用于文档。(它是部分实现的。)

我总是使用@GuardedBy("readwritelock")或者我用来synchronize的对象。

以后者为例:

代码语言:javascript
复制
class Example {
    private Object lock = new Object();

    @GuardedBy("lock")
    private Stuff innards = ...;

    public void work() {
        synchronized(lock) {
            workWith(innards.goop());
        }
    }        
}
票数 35
EN

Stack Overflow用户

发布于 2011-10-25 23:24:22

Find bugs支持以下注释:

代码语言:javascript
复制
net.jcip.annotations.GuardedBy
net.jcip.annotations.Immutable
net.jcip.annotations.NotThreadSafe
net.jcip.annotations.ThreadSafe

这些GuardedBy注释的用法如下:

代码语言:javascript
复制
@ThreadSafe  
public class Queue<E> implements java.util.Queue<E>  
{  
    private ConcurrentLinkedQueue readWriteLock;  

    @GuardedBy( value="readWriteLock" )  
    public boolean offer(E o)  
    {  
        return queue.offer( o ); 
    }  

}  
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7825504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档