• 转发:Java同步注解(Annotation)解释


    JDK 5.0 以后增加了注解。就是@后面加一个名称。有其自身的含意。跟C#里的Attributes似的。
        Java并发编程中,用到了一些专门为并发编程准备的 Annotation。
    主要包括三类:
    1、类 Annotation(注解)
    就像名字一样,这些注解是针对类的。主有要以下三个:
    @Immutable
    @ThreadSafe
    @NotThreadSafe
    @ThreadSafe 是表示这个类是线程安全的。具体是否真安全,那要看实现者怎么实现的了,反正打上这个标签只是表示一下。不线程安全的类打上这个注解也没事儿。
    @Immutable 表示,类是不可变的,包含了 @ThreadSafe 的意思。
          @NotThreadSafe 表示这个类不是线程安全的。如果是线程安全的非要打上这个注解,那也不会报错。

    这三个注解,对用户和维护者是有益的,用户可以立即看出来这个类是否是线程安全的,维护者则是可以根据这个注解,重点检查线程安全方面。另外,代码分析工具可能会利用这个注解。


    2、域 Annotation(注解)
    域注解是对类里面成员变量加的注解。
    3、方法 Annotation(注解)
    方法注解是对类里面方法加的注解。

    域注解和方法注解都是用@GuardedBy( lock )来标识。里面的Lock是告诉维护者:这个状态变量,这个方法被哪个锁保护着。这样可以强烈的提示类的维护者注意这里。

    @GuardedBy( lock )有以下几种使用形式:

    1、@GuardedBy( "this" ) 受对象内部锁保护
    2、@GuardedBy( "fieldName" ) 受 与fieldName引用相关联的锁 保护。
    3、@GuardedBy( "ClassName.fieldName" ) 受 一个类的静态field的锁 保存。
    4、@GuardedBy( "methodName()" ) 锁对象是 methodName() 方法的返值,受这个锁保护。
    5、@GuardedBy( "ClassName.class" ) 受 ClassName类的直接锁对象保护。而不是这个类的某个实例的锁对象。
    ---------------------
    作者:USTCZYY
    来源:CSDN
    原文:https://blog.csdn.net/ustczyy/article/details/14105849
    版权声明:本文为博主原创文章,转载请附上博文链接!

    本文来自博客园,作者:编程狸,转载请注明原文链接:https://www.cnblogs.com/ping-pong/p/10112609.html

  • 相关阅读:
    docker制作容器(待更新)
    docker 容器连接宿主机mysql问题
    发布linux应用程序(待更新)
    docker 常用命令 (日常更新)
    多线程还是多进程的选择及区别(转)
    关于C++ const 的全面总结《转》
    JS闭包详解
    JS基础——js动画
    JS基础——innerHTML、CSS-DOM
    JS基础——DOM(一)
  • 原文地址:https://www.cnblogs.com/ping-pong/p/10112609.html
Copyright © 2020-2023  润新知