简单说说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

相关文章
相关标签/搜索