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类的直接锁对象保护。而不是这个类的某个实例的锁对象。

最新文章

  1. BPM问题
  2. Linux系统布置java项目
  3. java中泛型上限,下限应用
  4. nios II--实验6——串口硬件部分
  5. Leetcode 200 Number of Islands DFS
  6. jmeter 302请求测试
  7. MyEclipse 编写 ExtJS 卡死问题解决方法
  8. 新建标准mavenWeb工程以及Maven的web应用标准目录结构建议
  9. MVC4 + EF + System.Threading.Thread 出现的问题记录
  10. 自己改写了一个图片局部放大的jquery插件页面里面的html代码少了,同一个页面可以调用多个
  11. SQLite使用报告
  12. C语言栈与调用惯例
  13. rpc-远程调用框架
  14. Excel as a Service —— Excel 开发居然可以这么玩
  15. Cisco 关闭命令同步提示信息
  16. 「AC自动机」学习笔记
  17. I2C总线协议图解
  18. python操作文件
  19. 匿名内部类访问方法成员变量需要加final的原因及证明(转)
  20. web 资源好文

热门文章

  1. BZOJ1412[ZJOI2009]狼和羊的故事——最小割
  2. Educational Codeforces Round 60 Div. 2
  3. POJ 3580-SuperMemo-splay树
  4. Balanced Number HDU - 3709 数位dp
  5. Tmutarakan Exams URAL - 1091(莫比乌斯函数 || 容斥)
  6. FPGA时序分析相关
  7. Educational Codeforces Round 58 A,B,C,D,E,G
  8. linux常用目录简介
  9. luogu3278/bzoj3323 多项式的运算 (splay)
  10. pandas to_html