为什么多线程同时访问(读写)同个变量,会有并发问题?

2020-12-16  本文已影响0人  陈萍儿Candy

Java 内存模型规定了所有的变量都存储在主内存中,每条线程有自己的工作内存。
线程的工作内存中保存了该线程中用到的变量的主内存副本拷贝,线程对变量的所有操作都必须在工作内存中进行,而不能直接读写主内存。
线程访问一个变量,首先将变量从主内存拷贝到工作内存,对变量的写操作,不会马上同步到主内存。
不同的线程之间也无法直接访问对方工作内存中的变量,线程间变量的传递均需要自己的工作内存和主存之间进行数据同步。

(重点)那为什么Java的内存模型规范要这样定义导致出现线程本地内存和主存的值不同步呢?为啥线程要有自己的本地内存?

上一篇下一篇

猜你喜欢

热点阅读