本文主要是介绍数据依赖性,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
数据依赖性
如果两 个操作访问同一 个变量,且这两个操作中有一个为写 操作,此时这两个操作之间就存在数据依赖性 。数据依赖分为下列3种类型,如下 数据依赖类型表 所示。 |
---|
上面3种情况,只要重排序两个操作的执行顺序,程序的执行结果 就会被改变。 |
前面提到过,编译器和处理器可能会对操作做重排序 。编译器和处理器在重排序时,会遵守 数据依赖性,编译器和处理器不会 改变存在数据依赖关系的两个操作的执行顺序。 |
这里所说的数据依赖性仅针对单个处理器 中执行的指令序列和单个线程 中执行的操作,不同处理器之间和不同线程之间的数据依赖性不 被编译器和处理器考虑 。 |
double pi = 3.14; // Adouble r = 1.0; // Bdouble area = pi * r * r; // C | A和C之间存在数据依赖关系 ,同时B和C之间也存在 数据依赖关系 |
---|
-----------------------------------------------------------------------------摘自 书名:Java并发编程的艺术 作者:方腾飞;魏鹏;程晓明
这篇关于数据依赖性的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!