并发编程 | 顺序一致性模型

147 阅读1分钟
  • 概念

    顺序一致性内存模型是一个被计算机科学家理想化了的理论参考模型,它为程序员提供了极强的内存可见性保证。

  • 特性

    1. 线程中的所有操作必须按照程序的顺序来执行
    2. 所有线程都只能看到一个单一的操作执行顺序,每个操作都必须原子执行且立刻对所有线程可见

image.png

  • 线程同步情况

image.png 两个线程使用监视器锁来正确同步,A线程的3个操作执行后释放监视器锁,随后B线程获取同一个监视器锁

  • 线程未同步情况

image.png 两个线程没有做同步。虽然整体执行顺序是无序的,但所有线程都只能看到一个一致的整体执行顺序。以上图为例,线程A和B看到的执行顺序都是:B1→A1→A2→B2→A3→B3

顺序一致性模型中,所有操作完全按程序的顺序串行执行。它不管是否同步,只保证线程中操作是按照程序的顺序执行的,每一个操作的结果能立刻被所有线程可见,并且所有线程看到的顺序、结果都是一致的

  • 其他 需要注意的是顺序一致性模型是一个理想化的模型,在实际生产实践中最多作为理念的参考。实际生产中,人们会想尽办法在不改变结果的情况下,再各个层面,通过各种方法进行优化。比如JMM,Intel的MESI等等。切勿将此概念与后文JMM等内容混淆。