程序执行的顺序按照代码的先后顺序执行。
一般来说处理器为了提高程序运行效率,可能会对输入代码进行优化,进行重新排序(重排序), 它不保证程序中各个语句的执行先后顺序同代码中的顺序一致,但是它会保证程序最终执行结 果和代码顺序执行的结果是一致的。
int a = 5;//语句 1
int r = 3;//语句 2
a = a + 2; //语句 3
r = a*a; //语句 4
则因为重排序,他还可能执行顺序为(这里标注的是语句的执行顺序)2-1-3-4, 1-3-2-4但 绝不可能2-1-4-3,因为这打破了依赖关系。
显然重排序对单线程运行是不会有任何问题,但是多线程就不一定了,所以我们在多线程编程 时就得考虑这个问题了。

Was this helpful?

0 / 0

发表回复 0

Your email address will not be published.