memory model(内存模型):在计算机科学中,指一套规则与抽象,用来规定程序如何读写内存、不同线程/处理器对读写操作的可见性与顺序,以及编译器和硬件允许进行哪些优化而不改变程序在并发情境下的语义。常见于并发编程(如 C/C++、Java)的语境中。(在其他领域也可泛指“关于记忆如何运作的模型”,但此处以计算机科学用法为主。)
/ˈmɛməri ˈmɑːdəl/(美式常见)
/ˈmeməri ˈmɒdəl/(英式常见)
A good memory model makes multithreaded code easier to reason about.
一个好的内存模型能让多线程代码更容易推理与理解。
To avoid subtle concurrency bugs, the compiler and CPU must respect the language’s memory model when reordering reads and writes across threads.
为了避免隐蔽的并发错误,编译器和 CPU 在跨线程重排读写操作时必须遵守该语言的内存模型。
这是一个组合术语:memory(记忆/内存)源自拉丁语 memoria(记忆),model(模型)源自拉丁语 modulus(尺度、标准的小量,经由意大利语/法语进入英语)。在计算机科学里,memory model 作为术语流行于并发与体系结构研究中,用来把“硬件实际行为 + 编译器优化 + 语言规范”抽象成可讨论、可验证的一套规则。