簡單說說JSR133中理解程序被正確的同步,有哪些概念能夠參考?

衝突訪問(Conflicting Accesses ) 對同一個共享字段或數組元素存在兩個訪問(讀
或寫),且至少有一個訪問是寫操做,就稱做有衝突。數組

Happens-Before  關係 兩個動做(action)能夠被 happens-before 關係排序。若是一
個動做 happens-before 另外一個動做,則第一個對第二個可見,且第一個排在第二個
以前。必須強調的是,兩個動做之間存在 happens-before 關係並不意味着這些動做
在 Java 中必須以這種順序發生。happens-before 關係主要用於強調兩個有衝突的動
8 / 66
做之間的順序,以及定義數據爭用的發生時機。能夠經過多種方式包含一個
happens-before 順序,包括:
  某個線程中的每一個動做都 happens-before 該線程中該動做後面的動做。
  某個管程上的 unlock 動做 happens-before 同一個管程上後續的 lock 動做。
  對某個 volatile 字段的寫操做 happens-before 每一個後續對該 volatile 字段的讀
操做。
  在某個線程對象上調用 start() 方法 happens-before 該啓動了的線程中的任意
動做。
  某個線程中的全部動做 happens-before 任意其它線程成功從該線程對象上的
join()中返回。
  若是某個動做 a happens-before 動做 b,且 b happens-before 動做 c,則有 a
happens-before c. app

相關文章
相關標籤/搜索