java内存模型有哪些
1个回答
展开全部
JMM保证:如果程序是正确同步的,程序的执行将具有顺序一致性 。
JMM设计
从JMM设计者的角度来说,在设计JMM时,需要考虑两个关键因素:
(01) 程序员对内存模型的使用。程序员希望内存模型易于理解,易于编程。程序员希望基于一个强内存模型(程序尽可能的顺序执行)来编写代码。
(02) 编译器和处理器对内存模型的实现。编译器和处理器希望内存模型对它们的束缚越少越好,这样它们就可以做尽可能多的优化(对程序重排序,做尽可能多的并发)来提高性能。编译器和处理器希望实现一个弱内存模型。
JMM设计就需要在这两者之间作出协调。JMM对程序采取了不同的策略:
(01) 对于会改变程序执行结果的重排序,JMM要求编译器和处理器必须禁止这种重排序。
(02) 对于不会改变程序执行结果的重排序,JMM对编译器和处理器不作要求(JMM允许这种重排序)。
JMM设计
从JMM设计者的角度来说,在设计JMM时,需要考虑两个关键因素:
(01) 程序员对内存模型的使用。程序员希望内存模型易于理解,易于编程。程序员希望基于一个强内存模型(程序尽可能的顺序执行)来编写代码。
(02) 编译器和处理器对内存模型的实现。编译器和处理器希望内存模型对它们的束缚越少越好,这样它们就可以做尽可能多的优化(对程序重排序,做尽可能多的并发)来提高性能。编译器和处理器希望实现一个弱内存模型。
JMM设计就需要在这两者之间作出协调。JMM对程序采取了不同的策略:
(01) 对于会改变程序执行结果的重排序,JMM要求编译器和处理器必须禁止这种重排序。
(02) 对于不会改变程序执行结果的重排序,JMM对编译器和处理器不作要求(JMM允许这种重排序)。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询