关于计算机中的每个线程为何执行的顺序具有不确定性分析

       这个我在前面讲了:关于计算机 存储器处理器  存在较大的差距。接下来我给我自己 也给看我这篇文章的你,分析一下,为什么计算机的每个线程执行的顺序是具有不确定性的;

       由于计算机 存储器处理存 在较大的差距:所以 计算机系统 不得不加入一层读写速度尽可能接近处理器运算速度的告诉高速缓存(高速缓存就是讲需要运算的数据加载到高速缓存当中,让运算更快执行),当运算结束的时候,在把缓存的数据 写进内存。这么做的好处就感觉是Java设计模式讲的解耦规则,有点类似哈,进而减轻内存的读写压力。

       当然这就引发了接下来的问题:缓存数据一致性。因为CPU具有多核处理器,比如手机(8核处理器),每个处理器都有自己的高速缓存,当他们都共同运用一个主存器。{引深一点:多个处理器之间绑定一种协议来确定数据一致性}

       于是乎在协议的基础上,处理器不会按照输入的代码进行顺序执行,而是计算机为了让自身的资源尽可能的充分利用,进行了乱序执行,然后处理器会对计算之后的代码进行重组,保证结果的正确性。所以在Java虚拟机即时编译也采用了这样 重排序优化

       

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章