并发 二月 15, 2020

并发编程之Happens-Before原则

文章字数 1.6k 阅读约需 1 mins.

JVM定义的Happens-Before原则是一组偏序关系:对于两个操作A和B,这两个操作可以在不同的线程中执行。如果A Happens-Before B,那么可以保证,当A操作执行完后,A操作的执行结果对B操作是可见的。
Happens-Before的规则包括:

  • 程序顺序规则
  • 锁定规则
  • volatile变量规则
  • 线程启动规则
  • 线程结束规则
  • 中断规则
  • 终结器规则
  • 传递性规则

程序顺序规则

在一个线程内部,按照程序代码的书写顺序,书写在前面的代码操作Happens-Before书写在后面的代码操作。这时因为Java语言规范要求JVM在单个线程内部要维护类似严格串行的语义,如果多个操作之间有先后依...

查看全文
0%