Java并發注解Annotation

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類的直接鎖對象保護。而不是這個類的某個實例的鎖對象。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 一:java概述:1,JDK:Java Development Kit,java的開發和運行環境,java的開發工...
    ZaneInTheSun閱讀 2,694評論 0 11
  • 接口/抽象類意義規范、擴展、回調為其子類提供一個公共的類型 封裝子類中得重復內容 定義抽象方法,子類雖然有不同的實...
    MigrationUK閱讀 2,204評論 1 28
  • 1.解決信號量丟失和假喚醒 public class MyWaitNotify3{ MonitorObject m...
    Q羅閱讀 917評論 0 1
  • 對象的創建與銷毀 Item 1: 使用static工廠方法,而不是構造函數創建對象:僅僅是創建對象的方法,并非Fa...
    孫小磊閱讀 2,031評論 0 3
  • 這部分主要是開源Java EE框架方面的內容,包括Hibernate、MyBatis、Spring、Spring ...
    雜貨鋪老板閱讀 1,433評論 0 2