java CPU的乱序执行

CPU在进行读等待的同时执行指令,是CPU乱序的根源,不是乱,而是提高效率.

指令1:去内存中读取数据,等待内存返回,CPU去内存读取数据,CPU本身和内存的速度是100 : 1,所以他会一直等待内存返回;

指令2:与指令1没有任何依赖关系,且不去内存中读数据,那么指令2就会优先执行;

代码写的时候指令1在指令2前面,但实际上指令2比指令1优先执行完毕了。

典型例子:

如果不乱序执行:烧水壶、烧开水、洗茶壶、洗茶杯、拿茶叶泡茶。

乱序执行:烧水壶、烧开水的同时(洗茶壶、洗茶杯)、拿茶叶、泡茶.

代码实例:https://preshing.com/20120515/memory-reordering-caught-in-the-act/

 

posted @ 2020-12-20 11:33  宝宝佩恩天道  阅读(211)  评论(0编辑  收藏  举报