多线程中总内存和线程的工作内存

在这里插入图片描述

Java内存模型将内存分为了 主内存和工作内存 。类的状态,也就是类之间共享的变量,是存储在主内存中的,每个线程都有一个自己的工作内存(相当于CPU高级缓冲区,这么做的目的还是在于进一步缩小存储系统与CPU之间速度的差异,提高性能),每次Java线程用到这些主内存中的变量的时候,会读一次主内存中的变量,并让这些内存在自己的工作内存中有一份拷贝,运行自己线程代码的时候,用到这些变量,操作的都是自己工作内存中的那一份。在线程代码执行完毕之后,然后在某个时间点上再将最新的值更新到主内存中去。
这样导致的问题是,如果线程1对某个变量进行了修改,线程2却有可能看不到线程1对共享变量所做的修改。


本文来自 珍惜时间简单生活 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/FateRuler/article/details/82531301?utm_source=copy

猜你喜欢

转载自blog.csdn.net/FateRuler/article/details/82917473
今日推荐